Как удалить заголовок вкладки и растянуть элемент TabControl, чтобы не было пробелов? - PullRequest
0 голосов
/ 11 марта 2020

Я совершенно новичок в WPF .NET Core, я пытаюсь реализовать свое текущее программное обеспечение от WinForms до WPF. В данный момент я застрял здесь: я удалил TabControl Header, но мне не нравится то место, которое показано на картинке. enter image description here

Определение главной сетки

<Grid.RowDefinitions>
       <RowDefinition Height="20"/>
       <RowDefinition Height="140"/>
       <RowDefinition Height="*"/>
</Grid.RowDefinitions>

Сетка SubMain

<Grid Grid.Row="3">
       <Grid.ColumnDefinitions>
       <ColumnDefinition Width="*"/>
       <ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>

В WinForms мне пришлось переопределить метод Draw, но В настоящее время я ищу решение для WPF?

PS Пожалуйста, если вы планируете подать отрицательный голос, объясните, где я ошибся .. Спасибо!

За полный код XML нажмите Здесь

1 Ответ

1 голос
/ 11 марта 2020

Добро пожаловать в WPF. Вот стиль, который я использую для TabControl, когда я хочу внутренне управлять выбранной вкладкой, не позволяя пользователю ее изменить:

...
xmlns:cm="clr-namespace:System.ComponentModel;assembly=PresentationFramework"
...

<Style TargetType="TabControl">
    <Setter Property="BorderThickness" Value="0"/>
    <Setter Property="ItemContainerStyle">
        <Setter.Value>
            <Style TargetType="TabItem">
                <Style.Triggers>
                    <Trigger Property="cm:DesignerProperties.IsInDesignMode" Value="False">
                        <Setter Property="Visibility" Value="Collapsed"/>
                    </Trigger>
                </Style.Triggers>
            </Style>
        </Setter.Value>
    </Setter>
</Style>

Если вы посмотрите документацию по Visibility вы должны заметить разницу между Hidden (который вы используете в своем коде) и Collapsed (который я использую в моем). Hidden - вот почему вы все еще получаете пустое место.

Я использую DesignerProperties.IsInDesignMode в качестве триггера, чтобы вкладки по-прежнему отображались в режиме разработки. Таким образом, я все еще могу нажимать между ними при разработке интерфейса.

...