Раскадровка TabItem влияет на соседние TabItems - PullRequest
0 голосов
/ 18 апреля 2011

У нас есть стиль TabItem, который содержит очень простой ControlTemplate:

<Border x:Name="border" BorderThickness="0" Background="{DynamicResource MediumGray}" Margin="0,0,1,1" 
    SnapsToDevicePixels="True" TextBlock.Foreground="{DynamicResource DarkGray}">
    <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Text="{TemplateBinding Header}" />
</Border>

ControlTemplate содержит EventTrigger, который срабатывает на MouseEnter.Раскадровка использует ColorAnimation:

<Storyboard>
    <ColorAnimation To="{StaticResource _LightGray}" BeginTime="0:00:00"
        Duration="0:00:00.200"
        Storyboard.TargetName="border"
        Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)" />
</Storyboard>

Раскадровка работает, как и ожидалось, за исключением того, что она также влияет на другие элементы TabItems в TabControl.Они все оживляют до целевого цвета.

1 Ответ

0 голосов
/ 18 апреля 2011

Перемещение исходной фоновой кисти в ресурс ControlTemplate устраняет эту проблему:

<ControlTemplate TargetType="{x:Type TabItem}">
    <ControlTemplate.Resources>
        <SolidColorBrush x:Key="borderBackground" Color="{StaticResource _MediumGray}" />
    </ControlTemplate.Resources>

    <Border Background="{StaticResource borderBackground}" ... />
</ControlTemplate>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...