XAML尺寸不准确

时间:2012-03-07 18:20:13

标签: wpf xaml

根据我的理解,WPF允许设计师设置某些东西的大小(在这种情况下是一个矩形),它将在屏幕上显示为用户的大小。例如,此正方形应在屏幕上显示为1英寸。请参阅FrameworkElement.Width Property on MSDN

<Rectangle Width="1 in" Height="1 in" Fill="{StaticResource sT}" />
<DrawingBrush AlignmentX="Left" AlignmentY="Top">
<DrawingGroup x:Key="SnellenT">
    <DrawingGroup.Children>
        <GeometryDrawing Brush="Black"
                         Geometry="F1 M0,0 3,0 A 1.5,1.5 90 0 1 3,3 H2 L2,4 3,4 3,5 0,5 0,4 1,4 1,1 0,1 M5,5 " />

        <GeometryDrawing Brush="Black"
                         Geometry="F1 M0,0 5,0 5,5 0,5 0,0" />
</....> --Close all tags

在我的特定机器上(Win 7,24 in monitor,1920 x 1080分辨率),方块略大于1英寸; 1 1/16英寸。 (一个3英寸的矩形是3 1/8英寸。)如果我改变我的显示器1o 1280x720的分辨率,那1英寸的矩形变为1 9/16(3英寸到4 5/8)。

请向我解释为什么会这样。我的理解是,无论显示器大小或屏幕分辨率如何,wpf都将图像保持在指定的大小。即使在我的显示器尺寸的正确分辨率下,尺寸也已关闭。

2 个答案:

答案 0 :(得分:1)

在WPF中,“in”缩写仅转换为96px单位。见http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.height.aspx。此答案也很好地描述了Windows为什么无法实现您想要的目标:https://stackoverflow.com/a/300696/561604

答案 1 :(得分:1)

WPF尊重操作系统报告的逻辑DPI,但可能并不总是与显示器的实际大小相匹配。您的显示器可以选择制作比标准96 DPI更大或更小的像素,但仍然报告逻辑96 DPI的兼容性。

WPF调整的是Windows中设置的DPI,或“让您更容易阅读屏幕上的内容”选项。 100%是96 DPI,125%是120 DPI,150%是144 DPI。它应该是相同的大小,无论你选择哪一个,但它真的取决于你的显示器实际上最终会有多大。