如何调整/控制已经实现和发布的 WPF 应用程序的高度

Posted

技术标签:

【中文标题】如何调整/控制已经实现和发布的 WPF 应用程序的高度【英文标题】:How to resize/control an already implemented and released WPF application's height 【发布时间】:2013-04-29 22:54:58 【问题描述】:

我已经使用 c# 和 WPF 构建了一个应用程序。该应用程序已启动,客户正在使用它。现在,这就是问题所在。

在我的应用程序中,窗口的最小高度已设置为 825,但客户的屏幕分辨率为 1366(宽度)x 768(高度)。因此,客户无法看到整个 UI,因此,由于最小高度问题,某些按钮并不完全可供用户使用。

我知道我可以降低最小高度并结束这种情况,但这会涉及发布应用程序的下一次更新,对吗?如果不这样做,我如何向用户发布临时修复?一种从外部方式(例如通过 bat 文件或其他方式)控制应用程序窗口最小高度属性的方法。

【问题讨论】:

不认为这是可能的。 向您的客户出售一个新屏幕 :) 或让他使用 snoop 在运行时编辑高度。但我认为它不适合你。 哈哈 :) 这将完全改变公司的愿景和使命 ;) 因此在应用程序之外控制 wpf 应用程序的 UI 似乎不太可能。所以,要走的路是修改代码并以安装程序的形式向用户发布下一个更新,对吧? 我从未尝试过,但也许可以创建一个“包装器”应用程序,在ScrollViewerViewBox 中托管您编译的应用程序?或者弄清楚Snoop 是如何工作的并编写脚本来自动窥探应用程序并找到Window 的MinHeight 属性并进行更改?老实说,对他们正在使用的版本进行快速修复并让他们使用它可能会更容易,直到您准备好发布新版本。 【参考方案1】:

您是否尝试过在高度中使用 *? Auto 将匹配任何控件的此大小,但 * 为您提供可与 Stretch 一起使用的其余部分

如果你有多个 * 定义,那么每一个都是比例

例如

<Grid>
  <Grid.RowDefinitions>
     <RowDefinition Height="50" /> <!-- Header for Example
     <RowDefinition Height="*" /> <!-- Use Whatever space is left in the parent control
     <RowDefinition Height="50" /> <!-- Close Buttons etc
  </Grid.RowDefinitions>
</Grid>

更多信息请见Managing Application height in WPF (Expressing height as a percentage of screen height)

【讨论】:

以上是关于如何调整/控制已经实现和发布的 WPF 应用程序的高度的主要内容,如果未能解决你的问题,请参考以下文章

WPF特效-拼图游戏

如何在 WPF 中自动调整和右对齐 GridViewColumn 数据?

如何在 wpf 中移动和调整动态文本框的大小

控件不适合调整 WPF 的大小

如何实现一个由鼠标移动的 WPF 控件,如滑块控件但 2D?

WPF 网格 — 按特定顺序调整列的大小