首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在WPF中管理应用程序高度(将高度表示为屏幕高度的百分比)

在WPF中管理应用程序高度(将高度表示为屏幕高度的百分比)
EN

Stack Overflow用户
提问于 2011-07-12 18:57:03
回答 2查看 1.5K关注 0票数 0

所以我在我的显示器上创建了一个WPF应用程序,它的分辨率更高(1280比1024)。它在我的显示器上工作得很好。

但是,当我把它带到不同分辨率的显示器上时,整个应用程序会扩展到显示器之外,因此无法使用。

有没有办法纠正这一点。控件的所有高度和窗口高度都是固定的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-12 19:07:29

这很简单。减小窗口的高度。为什么你要用一个大的固定高度的窗口?显然,我不知道您的应用程序的设计,但您很快就会发现,固定的高度(和宽度)往往不能在不同的硬件上移植。

对您来说,真正的解决方案可能是使用WPF Grid控件。所有的控件都应该在网格中,网格会填满整个窗口。根据设置网格行和列的方式,控件的大小将随着窗口大小的变化而缩放。

假设您有四个希望均匀堆叠在网格中的控件。你可以这样做:

代码语言:javascript
运行
复制
<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会在窗口大小发生变化时处理所有事情。你可以做比这复杂得多的布局,但希望这能让你入门。

票数 1
EN

Stack Overflow用户

发布于 2011-07-12 19:05:02

WPF实际上并不是被设计成像WinForms那样处理的,因为绝对控制宽度、高度和位置会导致这些情况。它被设计为流畅的,允许控件包装(参见WrapPanel)、展开和折叠(参见自动或*大小)。如果你像对待WinForms一样对待它,你就会遇到这些问题,并不得不想出复杂的变通办法。WPF被设计为这些复杂变通方法的永久解决方案(在其他方面)

尝试寻找WPF的基础教程,以了解UI应该如何布局。

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6663105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档