簡體   English   中英

WPF 在后面的代碼中設置 DataTemplate 網格大小 (ResourceDictionary)

[英]WPF Set DataTemplate Grid size in code behind (ResourceDictionary)

我有包含 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"> <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()
    {

    }
  }

在 Grid 的 Loaded 事件中提供此邏輯,例如:

<Grid Loaded="Grid_Loaded">...

然后在代碼隱藏中:

private void Grid_Loaded(object sender, RoutedEventArgs e)
{
    Grid grid = sender as Grid;
    if (grid != null)
    {
        grid.Height = 600;
    }
}

不?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM