相关疑难解决方法(0)

WPF:如何在对话单元中指定单位?

我试图弄清楚如何使用适当的对话单元(DLU)在WPF中布局一个简单的对话框.


什么是对话单元?

对话框是基于用户首选字体大小的度量单位.定义一个对话框单元,使得平均字符宽4个对话框单位,高8个对话框单位:

在此输入图像描述

这意味着对话单元:

  • 用所选字体更改
  • 已选择DPI设置更改
  • 不正方形

我花了大约两个小时从Windows Vista中使用各种dlu测量标注这个示例对话框.有人可以给出生成此对话框的相应XAML标记吗?

替代文字 (图片链接)

现在我承认我对WPF XAML几乎一无所知.每次我开始,我都会受到阻碍,因为我无法弄清楚如何进行任何控制.似乎WPF中的所有内容都必须包含在某种面板中.有StackPanels,FlowPanels,DockPanel,Grid等.如果你没有这些,那么它将无法编译.

到目前为止,我唯一能够提出的XAML(uing 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>
Run Code Online (Sandbox Code Playgroud)

这是一个华而不实的怪物.没有任何控件放置或尺寸正确.我无法弄清楚如何在窗口中定位控件,也无法正确调整它们的大小.

有人可以将该屏幕截图转换为XAML吗?

注意:您不能测量屏幕截图.指定了所有对话单位(dlu)的宽度和高度.

注意: 1个水平DLU!= 1个垂直DLU.水平和垂直DLU的大小不同.


也可以看看

windows wpf xaml dpi

24
推荐指数
2
解决办法
6070
查看次数

当 DPI 感知禁用或在 Win7 上运行时,MFC 图片控件会更改大小

我在Win10中使用VS2015为我的朋友制作了一个MFC应用程序。看起来像这样,和资源编辑器中的一模一样。

这

但当他在Win7电脑上运行该应用程序时,Picture Control中的位图图像会放大并覆盖下面的一些文本框,如下所示。

这

经过查找,发现可能和DPI感知有关。我在 Manifest Tool 的属性页中禁用了 DPI-Awareness 并重新构建。即使在Win10中运行也出现同样的情况。

这

有人可以帮我解释一下原因并找到修复图像控件大小的解决方案吗?谢谢。

mfc backwards-compatibility dpi-aware

2
推荐指数
1
解决办法
2689
查看次数

标签 统计

backwards-compatibility ×1

dpi ×1

dpi-aware ×1

mfc ×1

windows ×1

wpf ×1

xaml ×1