WPF MenuItem Цвет при установке на черный не будет меняться на серый при отключении - PullRequest
4 голосов
/ 23 апреля 2010

Когда передний план главного меню установлен на черный, а фон - на белый, все отлично работает как для XP, так и для Windows 7. Но мы используем панель главного меню, которая черная и с белым передним планом. Это вызывает проблемы только в Windows 7. Почему при установке переднего плана элемента меню на черный он не изменится на серый при отключении.

1 Ответ

4 голосов
/ 04 ноября 2010

Я столкнулся с той же проблемой с Windows XP и 7.

Атрибут Foreground = "Black" заменяет встроенный триггер стиля, который является функцией IsEnabled.

Чтобы выполнить то, что вы ищете, необходимо создать собственный стиль с помощью Trigger on IsEnabled. Следующий код показывает, как сделать это в строке, хотя вы, вероятно, захотите перетащить стиль в раздел ресурсов и использовать его во всех пунктах меню.

<MenuItem Header="My Item" IsEnabled="{Binding MyItemEnabled}">
    <MenuItem.Style>
        <Style TargetType="{x:Type MenuItem}">
            <Setter Property="Foreground" Value="Black"/>
            <Style.Triggers>
                <Trigger Property="IsEnabled" Value="False">
                    <Setter Property="Foreground" Value="Gray"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    </MenuItem.Style>
</MenuItem>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...