我不想在 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# 世界的新手,这是最近的发现。
我想听听我在这里没有考虑过的方法的负面影响,并希望这将有助于其他人的设计工作。
谢谢大家......