Как можно применить шаблон элемента к TabItems по умолчанию? - PullRequest
0 голосов
/ 01 августа 2020

У меня есть следующий 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, для этого каждый элемент табуляции должен быть «голым», например:

<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 к тегам <TabItem Header="MyHeader"/>?

1 Ответ

2 голосов
/ 02 августа 2020

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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...