Изменить фон заголовка tabItem в silverlight - PullRequest
1 голос
/ 06 мая 2011

Как изменить цвет заголовка в TabItem

tabItem1.Background = new SolidColorBrush(Colors.Red);//This is not changing background
tabItem1.BorderBrush = new SolidColorBrush(Colors.Red);//This change header border color

Ответы [ 2 ]

1 голос
/ 06 мая 2011

Используйте шаблоны заголовков на элементе управления вкладками, а затем измените их в коде, например:

    <DataTemplate x:Key="InvalidTabHeader">
        <Border BorderBrush="Red" BorderThickness="1">
            <StackPanel Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Left">
                <TextBlock Text="{Binding}"></TextBlock>
            </StackPanel>
        </Border>
    </DataTemplate>

    <DataTemplate x:Key="ValidTabHeader">
        <StackPanel Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Left">
            <TextBlock Text="{Binding}"></TextBlock>
        </StackPanel>
    </DataTemplate>

, а затем во вкладке XAML ...

<sdk:TabItem Header="My Tab" x:Name="MyTab" HeaderTemplate="{StaticResource ValidTabHeader}">

И тогда вы можете делать такие вещи в коде представлений позади:

var invalidTabStyle = Ресурсы [INVALID_TABITEM_HEADER_TEMPLATE] как DataTemplate;

var validTabStyle = Ресурсы [VALID_TABITEM_HEADER_TEMPLATE] как DataTemplate;

myTabItem.HeaderTemplate = errorCnt == 0? validTabStyle: invalidTabStyle;

0 голосов
/ 07 мая 2011

К сожалению, довольно часто можно обнаружить, что даже некоторые довольно простые функции требуют от вас принятия собственных шаблонов существующих элементов управления (или, как в предложении Myles, вы просто накладываете пользовательский интерфейс по умолчанию на свой).

проблема в этом случае заключается в том, что существующий шаблон TabItem предполагает, что выбранная вкладка будет иметь белый (#FFFFFFFF) фон, жестко запрограммированный в шаблоне (что довольно часто встречается во многих стандартных шаблонах).

ВыСледует отметить, что значение вашего фона будет влиять на невыбранные вкладки, хотя вместо того, чтобы показывать сплошной Red из-за розового градиента.

Мой совет - прикусить пулю и скопировать шаблон по умолчанию для TabItem, а затем манипулироватьвы считаете нужным.Такой подход обеспечивает большую гибкость без добавления дополнительных ненужных элементов пользовательского интерфейса.

...