MenuItem синий при наведении в XP, хорошо в Windows 7 - PullRequest
2 голосов
/ 15 ноября 2011

Используя XAML, мы создали ряд кнопок в правом нижнем углу нашего приложения. Они находятся в DockPanel, которая находится в сетке. Они просто используются в качестве переключателей, при щелчке они переходят в другое изображение. Проблема возникает, когда вы наводите курсор на кнопку в XP, кнопка полностью становится синей, вы не можете видеть изображение ... просто синее. Это хорошо работает в win 7 ...

<MenuItem Name="PhonePad_MenuItem" Background="{DynamicResource Audio_Btn_Dialer_Disabled_Brush}" Height="22" Width="22" Click="PhonePad_MenuItem_Click"  Margin="0,1,0,0" IsEnabled="False" ToolTip=""/>

Следует отметить, что у нас есть еще одна кнопка в той же DockPanel, которая сама имеет пункты меню, которые заполняются при нажатии, отлично работает при наведении на xp и 7 ... вот код:

<MenuItem Name="Settings_MenuItem" Height="20" Width="Auto" IsEnabled="False" SubmenuOpened="Settings_MenuItem_SubmenuOpened" ToolTip="">
    <MenuItem.Header>
        <DockPanel Height="Auto" Width="Auto">
            <Image Name="Settings_MenuItem_Back" Source="{DynamicResource Audio_Btn_Device_Settings_Disabled}" Height="22" Width="22" HorizontalAlignment="Center" VerticalAlignment="Center" IsHitTestVisible="True" />
        </DockPanel>
    </MenuItem.Header>
    <MenuItem Header="" />
</MenuItem>

Я попытался установить SystemColors.HighlightBrushKey на прозрачный, но это просто делает изображение полностью исчезающим.

Есть идеи, почему это не работает на XP, но хорошо на 7?

1 Ответ

1 голос
/ 12 октября 2018

Это поведение связано с различными стилями на Win7 и XP.В качестве решения необходимо добавить стили Aero.

<ResourceDictionary Source="/PresentationFramework.Aero, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml"
...