我的这种方法是设计WPF UI吗?

iAt*_*_it 3 c# wpf

首先请说明一下,是的,这里有大量"与分辨率无关的C#WPF布局"相关问题.我的问题与此没有直接关系,我已经阅读了大部分内容,并阅读了几个教程.

目标:

由于我是WPF的新手,我的目标是有一个明确的方法来设计一个独立的屏幕分辨率的复杂,逼真的GUI,并在用户调整窗口大小时适当缩放.

混乱的原因:

我对许多教程和stackoverflow帖子建议的大量选项感到困惑,使用Viewbox,流动布局,相对布局,使用不同类型的容器,以及WPF应该是设计独立于分辨率的事实.

题:

我没有任何打算开始辩论的意图,我知道不是为了这个.我只是想知道我计划用来设计我的真实GUI的这个程序是否正确.

1>在Illustrator中设计一个样机(或直接在Blend中设计,我不知道应该使用哪个)

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

3>当我的用户启动我的应用程序时,获取屏幕大小并通过做一些数学来调整每个控件的大小(Yukh!这真的是我必须这样做吗?WPF的独立性是什么意思,那不是真的拖累和滴设计是吗?)

我的大多数应用程序都是数据库驱动的数据输入和操作表单 我使用的是业内常见的正确策略,还是我错过了什么?

非常感谢

Rac*_*hel 6

WPF非常容易与分辨率无关的原因之一是它提供的布局控制.

如果您是WPF的新手并且不知道还存在哪些布局控件,我强烈建议您查看这个快速的可视化开始,该开始演示了不同的布局面板以及它们如何调整/安排他们的孩子.

我建立GUI的典型方法是:

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

这里有几点需要注意:

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

  • 不使用拖放WPF编辑器.这是因为它经常为您的控件添加不必要的大小,位置和边距,这使您的XAML成为阅读和维护的噩梦.让小组在确定子项元素的大小和位置方面做得更好.

这并不意味着你根本无法调整元素的大小或位置,但通常你会为尺寸和位置而不是绝对元素设置相对属性,让你的面板做大量工作来确定绘制元素的位置,以及有多大制作它们.

对于定位,使用HorizontalAlignmentVerticalAlignment使用相对属性而不是绝对属性,例如Canvas.Top/ Canvas.Left或非常大Margins,尽管大多数布局面板负责以特定方式定位元素,因此大多数元素都不需要.

对于大小调整,这意味着设置MaxHeightMinWidth代替为元素定义绝对Height/ Width,或使用网格的星形大小调整以将元素相对调整为屏幕的百分比.