gpt4 book ai didi

wpf - 如何使用 MVVM 模式将窗口高度限制为屏幕分辨率的百分比?

转载 作者:行者123 更新时间:2023-12-04 16:13:07 26 4
gpt4 key购买 nike

我有一个以这种方式配置的窗口:

<Window x:Class="Catalogo.Views.dlgGenerosContenidosAsignarView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="dlgGenerosAsignar"
SizeToContent="WidthAndHeight"
WindowStartupLocation="CenterOwner">

我希望窗口根据其内容进行调整,因此我使用了 SizeToContent="WidthAndHeight"。但是如果内容太大,它会超出屏幕,所以我想将 MaxHeight 属性的值限制为屏幕的高度。

我如何使用 MVVM 模式来做到这一点?

我可以使用绑定(bind)到我的 ViewModel 中的属性,该属性使用 System.Windows.SystemParameters 来获取屏幕的高度并设置绑定(bind)到 View 的属性,但我认为窗口的大小应该在 View 中设置,而不是 ViewModel,所以我想知道是否有其他解决方案。

最佳答案

当遵循 MVVM 方法时,使用背后的代码存在很多混淆。这真的是一个完美的情况,你会想要使用后面的代码。正如您正确注意到的那样,这纯粹是与 View 相关的,不应该在 View 模型中。它没有任何理由,也没有可能从中受益。

所以,如果我是你,我会向 Window.Loaded 事件添加一个处理程序,获取你的测量结果并将 Window.Height 设置为所需的 高度:

private void Window_Loaded(object sender, RoutedEventArgs e)
{
// Assuming that you want the Height to be 80% of the screen Height
Height = SystemParameters.PrimaryScreenHeight * 0.8;
}

关于wpf - 如何使用 MVVM 模式将窗口高度限制为屏幕分辨率的百分比?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24476947/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com