我有一个包含Dialog模板的ResourceDictionary。它有自己的DataType="{x:Type viewModels:DialogViewModel}"
。我想设置这个对话框";窗口";初始化时的大小。如果我将例如Height属性添加到DialogViewModel
,我知道如何做到这一点。但是,这不是指定"高度"的正确位置。如何在代码隐藏中执行此操作,然后绑定到该属性?我想我已经尝试了我能找到的所有可能的解决方案。
基本上,我需要在SplitDialog.xaml.cs
中指定Height,比如说Height=500
,然后将其添加到<Grid Margin="20,20,20,10" Tag="Category dialog" MinHeight="450" Height="???" x:Name="MainGrid">
中,但如何?
我已经尝试添加到SplitDialog.xaml.cs
(返回Height为null(:
Grid gGrid = (Grid)this.FindName("MainGrid");
gGrid.Height = 600;
SplitDialog.xaml:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="Controls.Styles.Dialog.SplitDialog"
xmlns:viewModels="clr-namespace:ViewModels.Category;assembly=ViewModels">
<DataTemplate DataType="{x:Type viewModels:DialogViewModel}">
<DataTemplate.Resources>
<ResourceDictionary>
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
</ResourceDictionary>
</DataTemplate.Resources>
<Grid Margin="20,20,20,10" Tag="Category dialog" MinHeight="450" x:Name="MainGrid">
</Grid>
</DataTemplate>
</ResourceDictionary>
SplitDialog.xaml.cs:
public partial class SplitDialog : ResourceDictionary
{
public SplitDialog()
{
}
}
在网格的Loaded事件中提供此逻辑,例如:
<Grid Loaded="Grid_Loaded">...
然后在代码后面:
private void Grid_Loaded(object sender, RoutedEventArgs e)
{
Grid grid = sender as Grid;
if (grid != null)
{
grid.Height = 600;
}
}
没有?