我试图弄清楚如何使用正确的对话框单元(DLU)在 WPF 中布局一个简单的对话框。
什么是对话单元?
对话框是基于用户首选字体大小的度量单位。定义一个对话单元,使平均字符为 4 个对话单元宽乘以 8 个对话单元高:
这意味着对话单元:
- 用所选字体更改
- 使用选定的 DPI 设置更改
- 不是方形的
我花了大约两个小时在 Windows Vista 中使用各种dlu测量来确定这个示例对话框的尺寸。有人可以提供生成此对话框的相应 XAML 标记吗?
(图片链接)
现在诚然,我对 WPF XAML 几乎一无所知。每次我开始时,我都会受到阻碍,因为我不知道如何进行任何控制。似乎 WPF 中的所有内容都必须包含在某种面板上。有 StackPanels、FlowPanels、DockPanel、Grid等。如果您没有其中之一,则无法编译。
到目前为止,我能够提出的唯一 XAML(使用 XAMLPad):
<DockPanel xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Image Width="23" />
<Label>Are you sure you want to move this file to the Recycle Bin?</Label>
<Image Width="60" />
<Label>117__6.jpg</Label>
<Label>Type: ACDSee JPG Image</Label>
<Label>Rating: Unrated</Label>
<Label>Dimensions: 1072 × 712</Label>
<Button Content="Yes" Width="50" Height="14"/>
<Button Content="Cancel" Width="50" Height="14"/>
</DockPanel>
这呈现为一个华而不实的怪物。没有任何控件放置或调整大小。我无法弄清楚如何在窗口中放置控件,也无法正确调整它们的大小。
有人可以将该屏幕截图转换为 XAML 吗?
注意:您不能测量屏幕截图。指定了所有对话单元 (dlu) 的宽度和高度。
注意: 1 个水平 DLU != 1 个垂直 DLU。水平和垂直 DLU 的大小不同。
也可以看看
- 调整屏幕和字体设置的 WPF 应用程序(或者,我如何将 DLU 与 WPF 中的单位相关联?)
- WPF 全局字体大小
- WPF 按钮相同/推荐宽度
- .ScaleControl 的 WPF 版本?
- Microsoft 用户体验指南:推荐的大小和间距
- Microsoft 用户体验指南:布局指标
碰撞: 2011 年 6 月 20 日