Попытка WPF Tab заголовка, нужно сделать 3 корректировки - PullRequest
2 голосов
/ 21 декабря 2011

Я хочу изменить стиль некоторых заголовков вкладок WPF.Я хотел бы сохранить все оригинальные стили заголовков вкладок, за исключением этих трех вещей -

  1. Увеличить высоту заголовков
  2. Сделать высоты каждого заголовка одинаковыми.Обычно выбранная вкладка имеет большую высоту, мне нужно, чтобы высоты как выбранных, так и невыбранных вкладок были одинаковыми.
  3. Добавьте изображение над текстом в каждом заголовке

Вотдо и после изображения того, что я хочу сделать -

WPF Tab Headers

Кто-нибудь знает, как это сделать?

1 Ответ

3 голосов
/ 21 декабря 2011

Итак, вы можете заменить панель стека своими красивыми изображениями.

Обновление 1 - чтобы убрать эффект изменения размера при выборе вкладки, вам нужно изменить стиль TabItem (шаблон заголовка слишком светлый для этого). Просто получите StyleSnooper (http://blog.wpfwonderland.com/2007/01/02/wpf-tools-stylesnooper/) откройте его с VS2010, перекомпилируйте его для .NET4, запустите, перейдите к TabItem и найдите:


<Setter Property="FrameworkElement.Margin">
                                        <Setter.Value>
                                            <Thickness>
                                                2,2,2,2</Thickness>
                                        </Setter.Value>
                                    </Setter>
                                    <Setter Property="FrameworkElement.Margin" TargetName="Content">
                                        <Setter.Value>
                                            <Thickness>
                                                2,2,2,2</Thickness>
                                        </Setter.Value>

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


<Window x:Class="Immutables.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>

        <TabControl TabStripPlacement="Left" x:Name="AreasTabControl" Margin="1">
            <TabItem x:Name="AttributesTab">
                <TabItem.HeaderTemplate>
                    <DataTemplate>
                        <Grid Width="100" Height="40">

                            <Border BorderThickness="1" BorderBrush="Gray" HorizontalAlignment="Left" VerticalAlignment="Top">
                                <StackPanel Orientation="Horizontal">
                                    <Rectangle VerticalAlignment="Top"
                                Width="5" Height="5" Fill="White" />
                                    <Rectangle  VerticalAlignment="Top"
                                Width="5" Height="5" Fill="Blue" />
                                    <Rectangle VerticalAlignment="Top"
                                Width="5" Height="5" Fill="Red" />
                                </StackPanel>
                            </Border>


                            <TextBlock Margin="0,20,0,0">Go Russia!</TextBlock>
                        </Grid>
                    </DataTemplate>
                </TabItem.HeaderTemplate>

            </TabItem>
        </TabControl>
    </Grid>
</Window>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...