【发布时间】:2021-08-15 16:08:41
【问题描述】:
我有包含 Dialog 模板的 ResourceDictionary。它有自己的DataType="{x:Type viewModels:DialogViewModel}"。我想在初始化时设置这个对话框“窗口”的大小。如果我将例如 Height 属性添加到DialogViewModel,我知道该怎么做。但是,这不是指定高度的正确位置。如何在后面的代码中执行它然后绑定到该属性?我想我已经尝试了所有可能的解决方案。
基本上我需要在SplitDialog.xaml.cs 中指定高度,比如说Height=500,然后将其添加到<Grid Margin="20,20,20,10" Tag="Category dialog" MinHeight="450" Height="???" x:Name="MainGrid">,但是如何?
我尝试添加到SplitDialog.xaml.cs(返回高度为空):
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()
{
}
}
【问题讨论】:
-
您想什么时候设置
Height?要么在模板中设置,要么等到模板应用于元素并将其设置在元素上。 -
@mm8 我想在初始化时设置它。这是因为需要在初始化时设置高度,并在模板本身中设置 MinHeight 并允许用户调整大小 => 如有必要,将其变大。