确定便携式桌面应用程序的控件大小

时间:2013-12-23 05:06:38

标签: wpf silverlight xaml user-interface resolution

我是UI应用程序专业开发的新手。我想知道决定每个UI元素布局的常规方法是什么。 人们是否根据设计时间监视器大小对大小元素进行硬编码?然后动态缩放UI大小? 或者人们使用一些动态方法来设置每个UI元素根据屏幕大小成比例?我的意思是,如果有一种动态方法来设置与屏幕大小成比例的控件大小,并且该比率由程序员硬编码。显然,Dockpanel或viewbox是自动调整的。或者人们通常在设计时决定尺寸? 还是有其他常见方法?

2 个答案:

答案 0 :(得分:1)

通常建议根据屏幕尺寸使元素大小成比例。 WPF有很多功能来实现这些功能。由于您是WPF的新手,因此请简要了解WPF Panels。此外,如果您希望坚持使用现有布局,并且需要按比例扩展布局,请在WPF中使用ViewBox

答案 1 :(得分:1)

对此没有简单的答案。如果你愿意的话,WPF组合为你做了很多艰苦的工作。

如果我可以帮助它,我没有指定宽度和高度,但如果我说我从来没有这样做,我会撒谎。在一些数据输入应用程序中,除了我有选择之外别无选择,我会让WPF合成系统为我工作。边距是唯一始终可以查看的布局属性。

WPF撰写系统

WPF Composition系统将两次传递您的逻辑树,一次测量元素,一次根据收集的信息排列元素。某些元素(如面板)将尽可能占用尽可能多的空间。有些元素会尽可能地限制其内容。有些元素只会占用他们需要的空间。

例如,如果将TextBox放在网格中而未指定宽度和高度,则TextBox将占用网格的整个“内容”区域。如果对TextBox和StackPanel执行相同操作,则StackPanel会将TextBox约束到TextBox的MinHeight。将CheckBox放入网格中,它只占用所需的区域。

<强>结论

除了比赛之外,没有其他简单的方法可以学习。

我建议阅读以下链接

WPF Architecture

Trees in WPF

它们都是长读,但值得一试。他们将为您提供搜索WPF更实际应用所需的理论,并且有很多很好的博客文章可以涵盖这个主题。