Невозможно установить свойство Background для MenuItem для события IsPressed - PullRequest
2 голосов
/ 05 января 2011

Я хочу изменить фон элемента MenuItem при нажатии элемента MenuItem.

<Style x:Key="{x:Type MenuItem}" TargetType="MenuItem">
    <Style.Triggers>
        <Trigger Property="MenuItem.IsPressed" Value="True">
            <Setter Property="MenuItem.Background" Value="#FFE389" />
            <Setter Property="MenuItem.BorderBrush" Value="#C2762B" />
        </Trigger>
    </Style.Triggers>
</Style>

Я пытался выполнить вышеизложенное, но триггер не работает.Является ли триггер неправильным?

Обновление: работает для события IsMouseOver, но IsPressed не работает

Обновление 2: работает для TopLevelMenuItems, но не работает для TopLevelMenuHeaderItems.alt text

1 Ответ

1 голос
/ 05 января 2011

Попробуйте это ..., которое не вводит имена свойств с MenuItem и измените синтаксис TargetType и x:Key ...

<Style x:Key="MyStyle" TargetType="{x:Type MenuItem}">
    <Style.Triggers>
        <Trigger Property="IsPressed" Value="True">
            <Setter Property="Background" Value="#FFE389" />
            <Setter Property="BorderBrush" Value="#C2762B" />
        </Trigger>
    </Style.Triggers>
</Style>

РЕДАКТИРОВАТЬ:

На основе ваших обновлений рассмотрим, как по умолчанию MenuItem создается с помощью XAML . Это должно помочь вам в создании стиля для различных частей MenuItem. Обратите внимание на использование свойства Role в стиле MenuItem для заголовков и элементов как на верхнем, так и на подуровне.

...