所以我在我的显示器上创建了一个WPF应用程序,它具有更高的高度(1280对1024)分辨率。它在我的显示器上正常工作。
但是,当我将它带到不同分辨率的显示器时,整个应用程序都会扩展到显示器之外,因此无法使用。
知道如何纠正这个问题。我的控件和窗口高度的所有高度都是固定的
答案 0 :(得分:1)
WPF并没有真正被设计为像WinForms一样对待,其中绝对控制宽度,高度和位置导致这些情况。它设计为流畅的,允许控件包装(请参阅WrapPanel),展开和折叠(请参阅自动或*尺寸)。如果你像WinForms一样对待它,你就会遇到这些问题,并且必须提出复杂的解决方法。 WPF被设计为这些复杂解决方案(以及其他)的永久解决方案
尝试寻找WPF的基础知识教程,以了解如何布局UI。
希望有所帮助。
答案 1 :(得分:1)
这很容易。降低窗户的高度。你为什么使用大的固定高度窗口?显然我不知道你的应用程序的设计,但正如你很快发现的那样,固定高度(和宽度)往往不能在不同的硬件上移植。
真正的解决方案可能是使用WPF Grid
控件。所有控件都应该在网格中,这将填满整个窗口。根据您设置网格行和列的方式,您的控件将随着窗口大小的变化而缩放。
假设您想要在网格中均匀堆叠四个控件。你可以这样做:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height=".25*"/>
<RowDefinition Height=".25*"/>
<RowDefinition Height=".25*"/>
<RowDefinition Height=".25*"/>
</Grid.RowDefintions>
<MyControl Grid.Row="0"/>
<MyControl Grid.Row="1"/>
<MyControl Grid.Row="2"/>
<MyControl Grid.Row="3"/>
</Grid>
现在每个控件占用可用空间的25%,WPF会在窗口大小发生变化时处理所有内容。你可以做比这更复杂的布局,但希望这可以让你开始。