我有一个WPF应用程序,它以一个非常小的窗口开始.在200x100的区域内的东西.当从外部源引发某些事件时,我将控件添加到窗口的ItemsControl区域.items控件当前设置为使用StackPanel PanelTemplate.
我想要的是,当控件添加到itemscontrol时,应用程序窗口会增长.这是可能吗?这背后的想法是始终保持窗口尽可能小.当从itemscontrol中删除控件时,它也应该缩小.
谢谢.
当我尝试将窗口的高度和宽度绑定到视图模型中的属性时,我遇到了一些问题.这是一个小样本应用程序来说明问题.这是app.xaml.xs中的代码
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
MainWindow mainWindow = new MainWindow();
MainWindowViewModel mainWindowViewModel = new MainWindowViewModel();
mainWindow.DataContext = mainWindowViewModel;
mainWindow.Show();
}
}
Run Code Online (Sandbox Code Playgroud)
这是MainWindow.xaml:
<Window x:Class="TestApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="{Binding WindowHeight}"
Width="{Binding WindowWidth}"
BorderThickness="{Binding WindowBorderThickness}">
</Window>
Run Code Online (Sandbox Code Playgroud)
这是视图模型:
public class MainWindowViewModel
{
public int WindowWidth { get { return 100; } }
public int WindowHeight { get { return 200; } }
public int WindowBorderThickness { get { return 8; } }
}
Run Code Online (Sandbox Code Playgroud)
程序启动时,会调用WindowHeight和WindowBorderThickness(但不是WindowWidth)的getter,因此窗口的高度和边框设置正确,但不是宽度. …