首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >阻止TabControl中的TabItems重新定位?

阻止TabControl中的TabItems重新定位?
EN

Stack Overflow用户
提问于 2010-05-11 20:14:05
回答 2查看 1.7K关注 0票数 2

在WPF中,有没有一种简单的方法可以在选定的TabItems发生变化时阻止TabControl中的TabItem被重新定位?因此,单击TabItem只会显示其内容,而不会像往常一样重新定位TabItems (如果选定的TabItem不在选项卡中,则将其移动到选项卡的底部行)。

编辑:为了清楚起见,我确实希望选项卡显示在多行中,我只是不希望在选择了除底部行之外的行中的某个TabItem时重新定位选项卡的标题。我希望header的集合保持完全静态,但是当单击header时,TabItem的内容仍然可以显示。

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2010-07-20 01:10:09

我知道已经很晚了,但我今天必须弄清楚,所以就这样吧。

基本上,您需要为选项卡控件创建自己的控件模板,并使用不同的面板来包含选项卡项。

下面是一个使用WrapPanel的简化示例。

代码语言:javascript
复制
<Style TargetType="TabControl" x:Key="MyTabControl">
<Setter Property="Template">
  <Setter.Value>
    <ControlTemplate TargetType="TabControl">
      <Grid SnapsToDevicePixels="true" KeyboardNavigation.TabNavigation="Local" HorizontalAlignment="Stretch">
        <Grid.RowDefinitions>
          <RowDefinition Height="Auto" />
          <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <WrapPanel x:Name="HeaderPanel" HorizontalAlignment="Center" VerticalAlignment="Top" IsItemsHost="true"
            Grid.Row="0" KeyboardNavigation.TabIndex="1" />
        <ContentPresenter Grid.Row="1" x:Name="PART_SelectedContentHost" ContentSource="SelectedContent" Margin="10" />
      </Grid>
    </ControlTemplate>
  </Setter.Value>
</Setter>

然后按如下方式使用它

代码语言:javascript
复制
 <TabControl Style="{StaticResource MyTabControl}" ....

您可以下载控件模板示例here

票数 6
EN

Stack Overflow用户

发布于 2010-05-11 22:46:48

如果你有Blend,你可以为你的选项卡控件编辑一个模板的副本来删除这个行为,我相信。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2810535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档