lukeer Ответов: 2

Изменение высоты заголовка WPF tabcontrol с помощью сенсорного управления


Привет форум,

в программном обеспечении WPF есть TabControl, который я должен сделать удобным для прикосновения. Я хотел бы увеличить высоту всех заголовков до 48 пикселей, чтобы они хорошо сочетались с кнопками, которые уже достаточно велики, чтобы пальцы могли нажимать на них.

Но, похоже, нет никакого свойства "header.height", которое можно было бы изменить.

Я видел несколько статей о том, как полностью скрыть заголовок или полностью изменить его произвольным образом.

Есть ли способ изменить только то, что Высота или MinimumHeight или так и для Элемент управления TabControl заголовок?

Что я уже пробовал:

<Window.Resources>
    <ControlTemplate x:Key="TouchTabControl" TargetType="TabControl">
        <ContentPresenter Heading.Height="48" />
    </ControlTemplate>
</Window.Resources>
Ошибка: Заголовок.Высота не поддерживается проектом Windows Presentation Foundation (WPF).

<Window.Resources>
    <Style TargetType="TabControl">
        <Setter Property="HeaderTemplate">
        <!--Error1-->
            <Setter.Value>
                <ContentPresenter>
                    <ContentPresenter.Content>
                        <TextBlock FontSize="48" Text="{TemplateBinding Content}" />
                        <!--Error2-->
                    </ContentPresenter.Content>
                </ContentPresenter>
            </Setter.Value>
        </Setter>
    </Style>
</Window.Resources>

Ошибка 1: "HeaderTemplate" не распознан или недоступен.
Ошибка 2: "контент" не распознан или недоступен.

2 Ответов

Рейтинг:
7

lukeer

Начало здесь[^], Я придумал это:

<Style TargetType="{x:Type TabItem}">
    <Setter Property="HeaderTemplate">
        <Setter.Value>
            <DataTemplate>
                <ContentPresenter Content="{TemplateBinding Content}" Height="48" />
            </DataTemplate>
        </Setter.Value>
    </Setter>
    <Setter Property="Padding" Value="3" />
</Style>
Спасибо всем вам за то, что вы размышляли об этом вместе со мной.


Рейтинг:
1

Gerry Schmitz

Просто измените высоту одного заголовка:

<Grid>
   <TabControl>
      <TabItem>
         <TabItem.Header>
            <Grid Height="48">
               <TextBlock Text="Press me"
                          VerticalAlignment="Center" />
            </Grid>
         </TabItem.Header>
      </TabItem>
      <TabItem Header="Me Too" />
   </TabControl>
</Grid>


lukeer

Спасибо.
Это выглядит так, как если бы я по существу создал пользовательский заголовок того размера, который я хочу, чтобы он имел.

Можно ли сделать это не для конкретного элемента управления TabControl, а таким образом, чтобы он мог быть применен к нескольким (или всем) элементам управления TabControl в окне?