为每个TabItem重用Grid RowDefinitions

时间:2011-12-07 14:11:29

标签: .net wpf xaml tabcontrol

我对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将至少有十几个TabItems。每个TabItem将具有一个具有相同精确行定义的网格(如XAML中所示)。我真的不想重复这十几次(对于每个TabItem)。我模糊地熟悉模板的概念。我可以将这些行定义放在某种模板中,并为每个TabItem重用它们吗?

1 个答案:

答案 0 :(得分:4)

您可以对所有标签页中的同一行使用相同的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>

有用的链接: