gpt4 book ai didi

c# - 我这种设计WPF UI的方法对吗?

转载 作者:行者123 更新时间:2023-11-30 13:32:09 24 4
gpt4 key购买 nike

首先让我声明,是的,这里有大量与“分辨率无关的 C# WPF 布局”相关的问题。我的问题与此没有直接关系,我已经阅读了其中的大部分内容,并阅读了一些教程。

目标:

由于我是 WPF 的新手,我的目标是有一种清晰的方法来设计复杂、逼真的 GUI,它独立于屏幕分辨率,并随着用户调整窗口大小时适当缩放。

混淆的原因:

我对许多教程和 stackoverflow 帖子建议的大量选项感到非常困惑,使用 Viewbox、流式布局、相对布局、使用不同类型的容器,以及 WPF 在设计上应该与分辨率无关的事实。

问题:

我无意发起辩论,我知道这不是为了辩论。我只是想知道我计划用来设计真实世界 GUI 的这个过程是否正确。

1> 在 Illustrator 中设计模型(或者直接在 Blend 中,我不确定我应该使用哪个)

2 > 在 WPF 中通过拖放设计复制它,同时使用(还不知道是哪个)布局设计 1024 x 768 分辨率

3 > 当我的用户启动我的应用程序时,获取屏幕大小并通过做一些数学调整每个控件的大小(Yukh!我真的必须这样做吗?WPF 独立于分辨率的意义何在?不是真正的拖放设计吗?)

我的大部分应用程序都是数据库驱动的数据输入和操作表单。我使用的是行业中常见的正确策略还是我遗漏了什么?

非常感谢

最佳答案

WPF 如此容易独立于分辨率的原因之一是它提供的布局控件。

如果您是 WPF 的新手并且还不知道存在哪些布局控件,我强烈建议您查看 this quick visual start演示了不同的布局面板以及它们如何调整/排列子项。

我构建 GUI 的典型方法是:

  • 在某处绘制布局草图。我的偏好是 Balsamiq或写在纸上
  • 找出该类型的 UI 布局需要哪些面板
  • 键入 XAML 以在 XAML 编辑器中构建它

这里有几点需要注意:

  • 大多数元素在 WPF 中都不是绝对大小或定位的。 WPF 的布局面板通常控制其中元素的大小或位置,因此通常使用面板来布局控件,而不是为每个控件指定单独的大小和位置。

  • 未使用拖放 WPF 编辑器。这是因为它通常会向您的控件添加不必要的大小、定位和边距,这会使您的 XAML 成为阅读和维护的噩梦。最好让 Panels 完成其子元素的大小调整和定位工作。

这并不意味着您根本不能调整元素的大小或位置,但是通常您会为调整大小和定位设置相对属性而不是绝对属性,并让您的面板完成确定在何处绘制元素的繁重工作,以及它们的大小。

对于定位,使用 Horizo​​ntalAlignmentVerticalAlignment 等相对属性,而不是 Canvas.Top/Canvas.Left 等绝对属性 或不自然的大 边距,尽管大多数布局面板负责以特定方式定位您的元素,因此大多数元素都不需要。

对于大小,这意味着设置 MaxHeightMinWidth 而不是为您的定义绝对 Height/Width元素,或使用 Grid 的星号调整大小以根据屏幕的百分比调整元素的大小。

关于c# - 我这种设计WPF UI的方法对吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16036147/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com