我不想在WPF Windows应用程序中处理不同的屏幕分辨率。所以,我发现了一种方法,我认为这种方法可以处理所有显示的问题 - 在合理范围内。
窗口的设计如下:
<Window x:Class="MyWindow.Window3"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
mc:Ignorable="d" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" d:DesignHeight="872" Title="My Window" SizeToContent="Manual" WindowState="Maximized" d:DesignWidth="1242"
Height="768" Width="1024" VerticalAlignment="Stretch" Closing="Window_Closing" Icon="Icon.ico" WindowStyle="ThreeDBorderWindow">
<Grid>
<Viewbox HorizontalAlignment="Left" VerticalAlignment="Top" StretchDirection="Both">
<!-- your controls go here -->
</Viewbox>
</Grid>
</Window>
使用此方法,无论分辨率如何,窗口都会缩放以与显示对齐。有一些角落案例,应该提到;
如果窗口最小化到非常小的分辨率,它将无法使用,因为控件会大幅缩小。
如果窗口的设计宽高比与目标不同,则可能会显示大量的空白
除了可能出现的负面约束外,我对此时的结果非常满意。我不需要担心滚动条或各种缩放选项 - 它只是有效!
我不能成为第一个发现这一点的人,但我之前没有看到过这种方法。我仍然是C#世界的新手,这是最近的发现。
我想听听我在这里没有考虑的方法的负面消息,并希望这将有助于其他人的设计工作。
感谢所有......
答案 0 :(得分:2)
应该是用户选择元素的大小。他可以改变DPI或分辨率(虽然这对LCD来说可能不是一个好主意,它可以很好地与CRT一起使用)。如果他希望能够以较小的字体看到大量信息,那就让他去做吧。
如果他的显示器很小,你应该显示滚动条,而不是非常小的字体。