为每个 TabItem 重用网格行定义

发布于 2024-12-20 03:50:14 字数 704 浏览 1 评论 0原文

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

<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 重用它们吗?

I'm pretty new to WPF / XAML. I have the following TabControl definition with a single TabItem definition:

<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>

Im my app, my TabControl will have at least a dozen TabItems like this. Each TabItem is going to have a grid with the same exact row definitions (as shown in the XAML). I really don't want to repeat this a dozen times (for each TabItem). I'm vaguely familiar with the concept of templates. Can I put these row definitions in a template of some sort and reuse them for each TabItem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

百思不得你姐 2024-12-27 03:50:14

您可以使用相同的 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>

有用的链接:

You can do this using the same SharedSizeGroup for the same row across all tab items

<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>

Useful links:

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文