我对 WPF/XAML 很陌生。我有以下 TabControl 定义和单个 TabItem 定义:

<TabControl Grid.Row="1">
   <TabItem Header="CdTe Thickness">
      <Grid x:Name="CdTeThicknessGrid">
         <Grid.RowDefinitions>
            <RowDefinition Height=".4*" /> <!-- 40% -->
            <RowDefinition Height=".6*" /> <!-- 60% -->
         </Grid.RowDefinitions>
      </Grid>
   </TabItem>
   <TabItem Header="CdTe Roughness"></TabItem>
</TabControl>

我是我的应用程序,我的 TabControl 至少会有十几个这样的 TabItem。每个 TabItem 都将有一个具有完全相同的行定义的网格(如 XAML 中所示)。我真的不想重复这十几次(对于每个 TabItem)。我隐约熟悉模板的概念。我可以将这些行定义放在某种模板中并为每个 TabItem 重复使用它们吗?

最佳答案

您可以对所有选项卡项的同一行使用相同的 SharedSizeGroup

<TabControl Grid.IsSharedSizeScope="True" Grid.Row="1">
   <TabItem Header="CdTe Thickness">
      <Grid x:Name="CdTeThicknessGrid">
         <Grid.RowDefinitions>
            <RowDefinition Height=".4*" SharedSizeGroup="FirstRow" />
            <RowDefinition Height=".6*" SharedSizeGroup="SecondRow" />
         </Grid.RowDefinitions>
      </Grid>
   </TabItem>
   <TabItem Header="CdTe Roughness"></TabItem>
</TabControl>

有用的链接:
  • DefinitionBase.SharedSizeGroup Property
  • Use Automatic Layout Overview
  • 关于.net - 为每个 TabItem 重用 Grid RowDefinitions,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8416674/

    10-12 19:19