我正在学习使用Caliburn Micro框架创建WPF应用程序。
按照主页上的教程Basic Configuration,我删除了默认生成的<Window>
xaml,而是<UserControl>
xaml并通过我的AppBoostrapper
引导它。< / p>
这是MainView.xaml:
<UserControl x:Class="SmartRenamer.Views.MainView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300"
MinHeight="300"
MinWidth="300"
MaxHeight="500"
MaxWidth="1000">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Menu IsMainMenu="True" Grid.Row="0">
<MenuItem Header="_File">
<MenuItem Header="_Open Folder..." x:Name="OpenFolder"></MenuItem>
</MenuItem>
<MenuItem Header="_About" />
</Menu>
<ScrollViewer HorizontalScrollBarVisibility="Visible" Grid.Row="1" MaxHeight="500" MaxWidth="1000">
<StackPanel>
<DataGrid x:Name="FilesList">
</DataGrid>
</StackPanel>
</ScrollViewer>
</Grid>
</UserControl>
问题是我想为我的应用设置MinWidth, MaxWidth, MinHeight, MaxHeight
,但似乎MainWindow.xaml
中的配置无效。
以下是两个屏幕截图,其中窗口仍然可以在定义的范围内重新调整大小:
我在这里错了什么?
答案 0 :(得分:0)
UserControl的width和height属性由保存该控件的容器设置。即在设计时使用的DesignWidth和DesignHeigth是在UserControl中设置的,但在运行时它将使用容器设置的值。
我对Caliburn Micro没有经验,但是似乎可以在引导程序中定义设计属性:
var settings = new Dictionary<string, object>
{
{ "Height" , 300},
{ "Width" , 300},
};
DisplayRootViewFor<ViewModel>(settings);