缩放窗口窗体
Scale WindowsForm
基本上,我希望所有内容(控件等)在通过拖动调整大小时随 WindowsForm 一起缩放,以便用户可以自己确定 UI 的大小。
图片不够完美,希望能说明问题:
最简单的方法是使用 (Flow/Table)LayoutPanel 和适当的 Anchor/Drop 属性,但我觉得这限制了我的设计,目前看起来像这样:
我的想法是在调用 Resize() 时缩放所有组件:
foreach(Control c in Controls){
c.Scale(scaleFactor);
}
我的问题是:位置设置不正确,确定 'scaleFactor' 所需的舍入导致不一致。
有没有一种干净的方法可以做到这一切?我是否必须使用 LayoutPanels 才能获得干净的方式?
最简单干净的方法是使用布局面板。
很难对控件的位置进行编码,这取决于先前控件的位置和大小(当您知道控件的顺序时会出现这种情况)。
在 WPF 中,所有内容都在布局面板的 ContentControl 上。控件的位置是自动计算的。
另一个问题可能是缩放组合框中的字体或字形图标。在 WPF 中这个最简单且受支持。
您确定要同时缩放那些文本框和标签吗?例如,文本框具有相当标准的高度。如果 window 太小以至于文本对于 buttons/text 框等来说太大了,你会怎么想?
可调整大小的内容的典型调整逻辑 window 有点不同。我宁愿为组框创建一个无边框面板,stack/dock 一切都像这样:
如果我调整这个 window 的大小,它将看起来像这样:
顺便说一句,我不喜欢这样调整按钮的大小。我只会为他们使用 Anchor = Left, Right
这样他们就可以保持他们的身高。并且不要忘记为表单设置适当的 MinimumSize
。
基本上,我希望所有内容(控件等)在通过拖动调整大小时随 WindowsForm 一起缩放,以便用户可以自己确定 UI 的大小。 图片不够完美,希望能说明问题:
最简单的方法是使用 (Flow/Table)LayoutPanel 和适当的 Anchor/Drop 属性,但我觉得这限制了我的设计,目前看起来像这样:
我的想法是在调用 Resize() 时缩放所有组件:
foreach(Control c in Controls){
c.Scale(scaleFactor);
}
我的问题是:位置设置不正确,确定 'scaleFactor' 所需的舍入导致不一致。
有没有一种干净的方法可以做到这一切?我是否必须使用 LayoutPanels 才能获得干净的方式?
最简单干净的方法是使用布局面板。
很难对控件的位置进行编码,这取决于先前控件的位置和大小(当您知道控件的顺序时会出现这种情况)。
在 WPF 中,所有内容都在布局面板的 ContentControl 上。控件的位置是自动计算的。
另一个问题可能是缩放组合框中的字体或字形图标。在 WPF 中这个最简单且受支持。
您确定要同时缩放那些文本框和标签吗?例如,文本框具有相当标准的高度。如果 window 太小以至于文本对于 buttons/text 框等来说太大了,你会怎么想?
可调整大小的内容的典型调整逻辑 window 有点不同。我宁愿为组框创建一个无边框面板,stack/dock 一切都像这样:
如果我调整这个 window 的大小,它将看起来像这样:
顺便说一句,我不喜欢这样调整按钮的大小。我只会为他们使用 Anchor = Left, Right
这样他们就可以保持他们的身高。并且不要忘记为表单设置适当的 MinimumSize
。