【问题标题】:Determining size of controls for portable desktop application确定便携式桌面应用程序的控件大小
【发布时间】:2014-01-11 07:15:31
【问题描述】:

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

【问题讨论】:

    标签: wpf silverlight xaml user-interface resolution


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      如果我能提供帮助,我不会指定宽度和高度,但如果我说我从不指定,那我就是在撒谎。在某些数据输入应用程序中,没有选择,但在我有选择的情况下,我会让 WPF 组合系统为我完成工作。边距是唯一始终可以查看的布局属性。

      WPF 组合系统

      WPF 组合系统将通过您的逻辑树两次,一次用于测量元素,一次用于根据收集的信息排列元素。某些元素(例如面板)将尝试尽可能多地占用空间。一些元素会尝试尽可能地限制它们的内容。有些元素只会占用它们需要的空间。

      例如,如果您将 TextBox 放入 Grid 中而不指定 Width 和 Height,则 TextBox 将占据 Grid 的整个“内容”区域。如果对 TextBox 和 StackPanel 执行相同操作,StackPanel 会将 TextBox 限制为 TextBox 的 MinHeight。在网格中放置一个复选框,它将只占用它需要的区域。

      结论

      除了玩之外,没有简单的学习方法。

      我建议阅读以下链接

      WPF Architecture

      Trees in WPF

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

      【讨论】:

        猜你喜欢
        • 2010-11-07
        • 1970-01-01
        • 2018-09-23
        • 1970-01-01
        • 1970-01-01
        • 2017-02-25
        • 2011-02-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多