【问题标题】:How can one apply an itemtemplate to default TabItems?如何将 itemtemplate 应用于默认 TabItems?
【发布时间】:2020-08-01 20:19:10
【问题描述】:

我有以下带有 2 个默认 tabitems 的 TabControl。

<TabControl>
    <TabControl.ItemTemplate>
        <DataTemplate>
            <ScrollViewer VerticalScrollBarVisibility="Auto" Height="300" Content="{Binding}"/>
        </DataTemplate>
    </TabControl.ItemTemplate>
    <TabItem Header="Conexión"><local:ConnectionSettings/></TabItem>
    <TabItem Header="Cuestionario"><local:QuestionEditor/></TabItem>
</TabControl>

当前的 xaml 不应用 ItemTemplate,为此,每个 tabitem 都需要“裸”,如下所示:

<TabControl>
    <TabControl.ItemTemplate>
        <DataTemplate>
            <ScrollViewer VerticalScrollBarVisibility="Auto" Height="300" Content="{Binding}"/>
        </DataTemplate>
    </TabControl.ItemTemplate>
    <!-- The ItemTemplate is only applied if tabitems are not wrapped in TabItem tags -->
    <local:ConnectionSettings/>
    <local:QuestionEditor/>
</TabControl>

但是如果我这样做了,我就不能指定标题了。

我希望每个 TabItem 都被包裹在一个 ScrollViewer 中(在 ItemTemplate 中指定),但同时能够指定标题。

有没有办法将 ItemTemplate 应用于&lt;TabItem Header="MyHeader"/&gt; 标签?

【问题讨论】:

  • ItemTemplate 应用于ItemsSource 中的项目。添加TabItem 会将其添加到Items 而不是ItemsSource。您不能同时设置ItemsSourceItems
  • every TabItem to be wrapped in a ScrollViewer 是什么意思? TabItem 不能被包裹在另一个元素中,如果这样做,它们将不是 TabItems 并且 TabControl 将不支持它们。

标签: c# wpf


【解决方案1】:

ItemTemplate 是用于格式化ItemsSource 选项卡控件顶部标题的模板。 ContentTemplate 是用于格式化选项卡内容的模板。要将您定义的内容包装到滚动查看器,只需在模板中使用新的内容控件。这是一个最小的示例:

<TabControl>
    <TabControl.ContentTemplate>
        <DataTemplate>
            <ScrollViewer>
                <ContentControl Content="{TemplateBinding Property=ContentControl.Content}"/>
            </ScrollViewer>
        </DataTemplate>
    </TabControl.ContentTemplate>
    <TabItem>
        <Button Content="Button1"/>
    </TabItem>
    <TabItem>
        <Button Content="Button2"/>
    </TabItem>
</TabControl>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-22
    • 2021-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多