![]() |
1
250
使用页边距或填充,应用于容器内的作用域:
编辑:如果要重新使用两个容器之间的边距,可以将边距值转换为外部作用域f.e中的资源。
然后在内部范围中引用这个值
|
![]() |
2
78
这里可以看到另一个不错的方法: http://blogs.microsoft.co.il/blogs/eladkatz/archive/2011/05/29/what-is-the-easiest-way-to-set-spacing-between-items-in-stackpanel.aspx 它演示了如何创建附加行为,以便这样的语法可以工作:
这是将页边距设置为面板的几个子级(即使它们不是同一类型)的最简单、最快的方法。(即按钮、文本框、组合框等) |
![]() |
3
11
我改进了 Elad Katz' answer .
例子:
|
![]() |
4
6
您真正想要做的是包装所有子元素。在这种情况下,您应该使用项控件,而不是求助于可怕的附加属性,这样,对于您想要样式化的每个属性,最终都会有一百万个。
|
![]() |
5
4
+1代表谢尔盖的回答。如果你想把它应用到所有的堆叠面板上,你可以这样做:
但要当心: 如果在app.xaml(或合并到application.resources中的另一个字典)中定义类似的样式,则 可以 重写控件的默认样式。对于StackPanel等大多数无外观的控件来说,这不是问题,但对于文本框等,您可能会偶然发现 this problem 很幸运,它有一些解决办法。 |
![]() |
6
3
根据Sergey的建议,您可以定义和重用整个样式(具有各种属性设置器,包括边距),而不仅仅是厚度对象:
…
注意,这里的技巧是对隐式样式使用样式继承,从一些外部(可能从外部XAML文件合并)资源字典中的样式继承。 司扥噢特: 起初,我天真地尝试使用隐式样式将控件的Style属性设置为该外部样式资源(比如使用键“myStyle”定义的):
这导致Visual Studio 2010立即关闭,并出现灾难性故障错误(hresult:0x8000ffff(e_unexpected)),如中所述。 https://connect.microsoft.com/VisualStudio/feedback/details/753211/xaml-editor-window-fails-with-catastrophic-failure-when-a-style-tries-to-set-style-property# |
![]() |
7
2
UniformGrid在Silverlight中可能不可用,但有人已从WPF中移植了它。 http://www.jeff.wilcox.name/2009/01/uniform-grid/ |
![]() |
8
2
我的方法继承了StackPanel。 用途:
所需要的只是下面的短班:
|
![]() |
9
2
Grid.ColumnSpacing , Grid.RowSpacing , StackPanel.Spacing 现在是在UWP预览,所有将允许更好地完成这里的要求。 这些属性目前仅在Windows10 Fall Creators Update Insider SDK中可用,但应使其成为最终的位! |
![]() |
10
0
有时需要设置填充,而不是空白以使项目之间的空间小于默认值 |
![]() |
mohammad · StackPanel.ActualHeight始终为零 10 年前 |