什么是设置StackPanel中项目之间间距的简单方法?有没有一种简单的方法可以设置StackPanel内项目之间的默认空间,这样我就不必在每个项目上设置Margin属性?如果所有控件都相同,则按照IanR的建议进行操作,并实现一个捕获它的样式。如果不是,那么您不能为基类创建默认样式,因为它不起作用。这种情况的最佳方法是使用一个非常巧妙的技巧-附加属性(在WPF4中也称为行为)您可以创建一个带有附加属性的类,如下所示:publicclassMarginSetter{publicstaticThicknessGetMargin(DependencyObjectobj){厚度)obj.GetValue(MarginProperty);}publicstaticvoidSetMargin(DependencyObjectobj,Thicknessvalue){obj.SetValue(MarginProperty,value);}//使用DependencyProperty作为Margin的后备存储。这会启用动画、样式、绑定等...publicstaticThicknesForChildren(objectsender,DependencyPropertyChangedEventArgse){varpanel=senderasPanel;如果(面板==null)返回;foreach(varchildinpanel.Children){varfe=childasFrameworkElement;如果(fe==null)继续;fe.Margin=MarginSetter.GetMargin(面板);现在,要使用这个,你所有需要做的就是将此附加属性附加到您想要的任何面板,如下所示:当然,它是完全可重复使用的必须更新元素。分隔符甚至可以在静态资源中设置样式。附加属性也可以做到这一点,但我认为这太过分了。我发现在stackpanel中创建一个网格,然后添加任意多的列(或行)是这样的:会更加关注它。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
