将标签标题放在自己的网格行中?

时间:2016-09-13 18:04:27

标签: c# wpf xaml grid tabcontrol

我在Grid中有一个TabControl。有没有办法分配标签"标题区"填充特定网格行,以及标签内容区域填充另一个?

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
    </Grid.RowDefinitions>
    <TabControl x:Name="tabControl">
        <TabItem Header="TabItem">
        </TabItem>
        <TabItem Header="TabItem">
        </TabItem>
    </TabControl>
</Grid>

1 个答案:

答案 0 :(得分:1)

就像@xtreampb指出的那样,如果你真的想要将功能分开,你需要做一些修改。

但是,如果您不想浏览控件模板,那么您有多个选项可以完成此任务。例如,上次我不得不提供这样的请求时,我只有大约15分钟的时间来做这件事。所以我最终做的就像下面显示的概念一样,只做了一个RadioButton样式来匹配他们想要的“标签”的设计。

快速无痛(5分钟以下)并且当时达到了目的。此外,该应用程序非常小,而且所有者并不关心他们想要的其他设计。

<Grid>
   <Grid.RowDefinitions>
      <RowDefinition Height="Auto"/>
      <RowDefinition Height="*"/>
   </Grid.RowDefinitions>

   <StackPanel Orientation="Horizontal" Margin="20">
      <RadioButton GroupName="Blah" Content="Blah1" 
                   IsChecked="{Binding IsSelected, ElementName=Blah1}"/>
      <RadioButton GroupName="Blah" Content="Blah2" Margin="10,0"
                   IsChecked="{Binding IsSelected, ElementName=Blah2}"/>
      <RadioButton GroupName="Blah" Content="Blah3" 
                   IsChecked="{Binding IsSelected, ElementName=Blah3}"/>
   </StackPanel>

   <TabControl Grid.Row="1">
      <TabItem x:Name="Blah1" Visibility="Collapsed">
         <TextBlock Text="Wow TAB 1 IsSelected!"/>
      </TabItem>
      <TabItem x:Name="Blah2" Visibility="Collapsed">
         <TextBlock Text="Wow TAB 2 IsSelected!"/>
      </TabItem>
      <TabItem x:Name="Blah3" Visibility="Collapsed">
         <TextBlock Text="Wow TAB 3 IsSelected!"/>
      </TabItem>
   </TabControl>

</Grid>

希望这有帮助,欢呼!