在MVVM中以编程方式更改WPF窗口大小

use*_*971 0 c# wpf mvvm

如何使用MVVM方法以编程方式更改WPF中Window的大小?

我从XAML设置窗口高度为400,并单击窗体上的按钮尝试将高度增加到500.

在我的按钮的ICommand我正在使用:

Application.Current.MainWindow.Height = 500;
Run Code Online (Sandbox Code Playgroud)

但它没有做任何事情.

She*_*dan 8

尝试LoadedMainWindow.xaml.cs文件中的事件中设置'Application.Current.MainWindow'属性:

private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
    Application.Current.MainWindow = this;
}
Run Code Online (Sandbox Code Playgroud)

更新>>>

我的朋友,请记住,说你想用Application.Current.MainWindow...这就是你如何使用它.但是,如果您想以MVVM方式执行此操作,那么为什么不将值绑定到Window.Width属性?

<Window Width="{Binding Width}" MinWidth="{Binding Width}" MaxWidth="{Binding Width}">
    ...
</Window>
Run Code Online (Sandbox Code Playgroud)

请注意,结合Window.Width足够的这个工作.

  • MVVM中没有任何内容表明您*不能*使用后面的代码. (6认同)
  • @ user2519971实际上,在这种情况下使用代码隐藏是正确的.在MVVM的上下文中,ViewModel不应该知道View.因此,在VM中操纵View是一种破坏MVVM目的的不良做法. (4认同)