Размеры XAML не точны - PullRequest
       1

Размеры XAML не точны

0 голосов
/ 07 марта 2012

Насколько я понимаю, WPF позволяет дизайнеру устанавливать размер чего-либо (в данном случае прямоугольник), и он будет отображаться на экране точно таким же размером для пользователя.Например, этот квадрат должен отображаться на экране как ровно 1 дюйм.См. Свойство FrameworkElement.Width на 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 на мониторе, разрешение 1920 x 1080) квадрат немного больше 1 дюйма;1 1/16 дюйма(3-дюймовый прямоугольник равен 3 1/8 дюйма.) Если я изменю разрешение на моем мониторе на 1o 1280x720, этот 1-дюймовый прямоугольник изменится на 1 9/16 (от 3 дюймов до 4 5/8).объясните мне, почему это так.Насколько я понимаю, wpf сохраняет изображения в указанном размере независимо от размера монитора или разрешения экрана.Даже при правильном разрешении для моего размера монитора размеры были отключены.

Ответы [ 2 ]

1 голос
/ 07 марта 2012

WPF учитывает логический DPI, который сообщает ваша ОС, хотя он может не всегда соответствовать фактическому размеру вашего монитора. Ваш монитор может создавать пиксели большего или меньшего размера, чем стандартное значение 96 DPI, но при этом для совместимости все же сообщает логический 96 DPI.

Для WPF настраивается параметр DPI, установленный в Windows, или параметр «Упростить чтение на экране». 100% - 96 DPI, 125% - 120 DPI, 150% - 144 DPI. Он должен быть одинакового размера, независимо от того, какой из них вы выберете, но ваш монитор действительно зависит от того, насколько большим он будет в итоге.

1 голос
/ 07 марта 2012

В WPF аббревиатура "in" просто переводится в 96px.См. http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.height.aspx. Также в этом ответе есть хорошее описание того, почему Windows на самом деле не может выполнить то, что вам нужно: https://stackoverflow.com/a/300696/561604.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...