所以我在我的显示器上创建了一个WPF应用程序,它的分辨率更高(1280比1024)。它在我的显示器上工作得很好。
但是,当我把它带到不同分辨率的显示器上时,整个应用程序会扩展到显示器之外,因此无法使用。
有没有办法纠正这一点。控件的所有高度和窗口高度都是固定的。
发布于 2011-07-12 19:07:29
这很简单。减小窗口的高度。为什么你要用一个大的固定高度的窗口?显然,我不知道您的应用程序的设计,但您很快就会发现,固定的高度(和宽度)往往不能在不同的硬件上移植。
对您来说,真正的解决方案可能是使用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会在窗口大小发生变化时处理所有事情。你可以做比这复杂得多的布局,但希望这能让你入门。
发布于 2011-07-12 19:05:02
WPF实际上并不是被设计成像WinForms那样处理的,因为绝对控制宽度、高度和位置会导致这些情况。它被设计为流畅的,允许控件包装(参见WrapPanel)、展开和折叠(参见自动或*大小)。如果你像对待WinForms一样对待它,你就会遇到这些问题,并不得不想出复杂的变通办法。WPF被设计为这些复杂变通方法的永久解决方案(在其他方面)
尝试寻找WPF的基础教程,以了解UI应该如何布局。
希望这能有所帮助。
https://stackoverflow.com/questions/6663105
复制相似问题