c# - WPF 控件和边距与窗口大小成比例

标签 c# wpf silverlight xaml layout

目前,在制作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/

相关文章:

c# - Windows Phone 8 应用程序动态/以编程方式在 g 网格/面板中创建按钮

c# - 如何在 .net 表单应用程序的消息框中创建自定义按钮?

c# - Caliburn.micro 将参数从一个屏幕传递到另一个屏幕

wpf - 我可以从其他子窗口 ViewModel 访问主窗口 ViewModel

WPF/XAML 在具有数据绑定(bind)和高级模板的 TreeView 中使用 TreeViewItems

silverlight - 业务逻辑在MVVM中位于何处?

silverlight - 错误: You cannot call webbrowser methods until it is in the visual tree

c# - "Writable"对象引用

wpf - 在文本框中包含一个按钮

silverlight - 如何在Silverlight应用程序中获取托管网站的URL?