Флажок, отображающийся в виде черного ящика в меню


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

Может ли кто-нибудь помочь?

Вот XAML для пункта меню:

<ToolBar ToolBarTray.IsLocked="True" Margin="0" Padding="0" ToolBar.OverflowMode="Never">
    <Button Command="com:FormatCommands.LogInCommand">
        <Viewbox Width="15">
            <Image Source="..ResourcesLogin.png"/>
        </Viewbox>                        
    </Button>
    <Button Command="com:FormatCommands.LogOutCommand">
        <Viewbox Width="15">
            <Image Source="..ResourcesLogout.png"/>
        </Viewbox>
    </Button>
    <Button Command="com:FormatCommands.GetTodaysRacesCommand">
        <Viewbox Width="15">
            <Image Source="..Resourceslist.png"/>
        </Viewbox>
    </Button>
    <Menu>
        <MenuItem Header="Markets">
            <MenuItem IsCheckable="True" Header="British"/>
            <MenuItem IsCheckable="True" Header="Irish" />
        </MenuItem>
    </Menu>            
</ToolBar>
1 3

1 ответ:

Элемент ToolBar определяет некоторые стили для нескольких элементов управления, и Menu является одним из них. Вы можете найти ключ Style, определенный в статическом свойстве ToolBar.MenuStyleKey. Этот стиль устанавливает Background в #FF212121 для панели, которая содержит флажок.

К сожалению, я не верю, что есть способ изменить только фон для панели галочки, вам придется переопределить этот уродливый стиль MenuItem.

Примечание : чтобы применить стиль в вашем случае, выполните следующие действия этого действия:

  1. скопируйте приведенный выше XAML в новое решение VS.
  2. выберите Menu в окне конструктора.
  3. щелкните правой кнопкой мыши на Menu/ редактирование шаблона / редактирование скопировать / ввести.