0

我正在尝试开发一个使用 Windows Accent Color 的 AvalonDock 主题: https ://github.com/Dirkster99/AvalonDock

请参阅 /source/Components/Xceed.Wpf.AvalonDock.Themes.VS2013 文件夹的主题

问题是我似乎找不到在下面第二个屏幕截图中显示的文档下拉菜单中定义突出显示颜色的解决方案。正如您在下面看到的那样,主题以某种方式适用于工具窗口下拉菜单,但我似乎无法获得相同的主题以适用于文档菜单下拉菜单。

到目前为止,我已经确定文档下拉菜单的主题是这里:

/source/Components/Xceed.Wpf.AvalonDock.Themes.VS2013/Themes/Generic.xaml(在大约第 132 行查找 ContextMenuEx 标记)。

我一直在尝试各种事情,但无法让这个突出显示工作。

我是否必须为MenuItemEx和/或定义一个完整的主题ContextMenuEx才能使其正常工作,或者是否有更简单的解决方案?

<avalonDockControls:DropDownButton x:Name="MenuDropDownButton"
                               Grid.Column="1"
                               VerticalAlignment="Center"
                               Focusable="False"
                               Style="{StaticResource AvalonDockThemeVs2013ToolButtonStyle}">
<avalonDockControls:DropDownButton.DropDownContextMenu>
    <avalonDockControls:ContextMenuEx ItemsSource="{Binding Model.ChildrenSorted, RelativeSource={RelativeSource TemplatedParent}}">
        <avalonDockControls:ContextMenuEx.ItemContainerStyle>
            <Style TargetType="{x:Type avalonDockControls:MenuItemEx}" BasedOn="{StaticResource {x:Type MenuItem}}">
                <Setter Property="HeaderTemplate" Value="{Binding Path=Root.Manager.DocumentPaneMenuItemHeaderTemplate}" />
                <Setter Property="HeaderTemplateSelector" Value="{Binding Path=Root.Manager.DocumentPaneMenuItemHeaderTemplateSelector}" />
                <Setter Property="IconTemplate" Value="{Binding Path=Root.Manager.IconContentTemplate}" />
                <Setter Property="IconTemplateSelector" Value="{Binding Path=Root.Manager.IconContentTemplateSelector}" />
                <Setter Property="Command" Value="{Binding Path=., Converter={StaticResource ActivateCommandLayoutItemFromLayoutModelConverter}}" />
            </Style>
        </avalonDockControls:ContextMenuEx.ItemContainerStyle>
    </avalonDockControls:ContextMenuEx>
</avalonDockControls:DropDownButton.DropDownContextMenu>
<Rectangle x:Name="MenuDropDownButtonImage"
           Fill="{DynamicResource {x:Static reskeys:ResourceKeys.DocumentWellOverflowButtonDefaultGlyph}}"
           Width="12" Height="12">
    <Rectangle.OpacityMask>
        <ImageBrush ImageSource="../Images/PinDocMenu.png" />
    </Rectangle.OpacityMask>
</Rectangle>
</avalonDockControls:DropDownButton>

工具窗口上下文菜单下拉 在此处输入图像描述

在此处输入图像描述

4

1 回答 1

0

我可以通过按照此处的建议重新模板化 ContextMenu 项目来解决此问题: Change Background color of MenuItem on MouseOver

于 2018-11-04T01:44:46.037 回答