目前,在制作UI时,我根据屏幕尺寸将控件的所有边距和尺寸设置为固定尺寸。是否有某种方法可以根据屏幕大小按比例动态调整大小或边距,以便无需每次都在 XAML 中设置属性。
我目前的知识告诉我,我可以在样式或模板或使用的每个布局中设置固定的宽度和高度。
最佳答案
我想说重新考虑你的方法。不要使用边距绝对定位元素,而是使用正确的面板,以便元素根据容器的大小正确地重新定位和拉伸(stretch)自身。
WPF 中有许多面板支持不同的布局,可以自动动态地布局元素,例如StackPanel
用于堆叠,WrapPanel
用于包装,请参阅此处的面板概述:http://msdn.microsoft.com/en-us/library/ms754152(v=vs.110).aspx
例如
而不是:
<Grid>
<Label Content="Name:" Margin="92,320,0,0"/>
<TextBox Text="enter your name..." Margin="124,320,0,0"/>
</Grid>
用途:
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Label Content="Name:" Grid.Column="0"/>
<TextBox Text="enter your name..." Grid.Column="1"/>
</Grid>
然后使用 Margin
为元素提供空间,而不是位置,例如边距为 5。
关于c# - WPF 控件和边距与窗口大小成比例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20694744/