我有一个样式ContextMenu,我只设置了背景并删除了笔画:
<Style x:Key="TrayIconStyle" TargetType="ContextMenu">
<Setter Property="Background" Value="#222222"/>
<Setter Property="BorderThickness" Value="0"/>
</Style>
对于MenuItem这个菜单的对象,我也做了一个样式。根据我的想法,它应该将图标和文本设置为StackPanel并稍微移动悬停时的文本(IsMouseOver):
<Style TargetType="MenuItem">
<Setter Property="Background" Value="#222222"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="MenuItem">
<StackPanel Orientation="Horizontal">
<Image x:Name="_imgicon" Stretch="Fill" Source="{Binding Icon,RelativeSource={RelativeSource TemplatedParent}}" />
<TextBlock Foreground="Gray" FontSize="14" Margin="5 0 0 0" VerticalAlignment="Center" x:Name="_txt" Text="{Binding Header,RelativeSource={RelativeSource TemplatedParent}}" />
</StackPanel>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter TargetName="_txt" Property="Foreground" Value="White"/>
<Setter TargetName="_txt" Property="Margin" Value="8 0 0 0"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
然而,所有的工作是鼠标悬停时的文本及其偏移“动画”。出于某种原因,该图标没有显示,并且左侧有某种白条,我还想对其应用背景颜色#222222:
我的错误是什么?
创建上下文菜单:
<ContextMenu Style="{StaticResource TrayIconStyle}">
<MenuItem Header="Open">
<MenuItem.Icon>
<Image Source="/ImgSrc/logo.ico" />
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="Exit"/>
</ContextMenu>

根据您的上一个问题,我为系统托盘图标做了一个示例,但随后您删除了该问题。
菜单布局如下所示。
该解决方案完全在 Yandex.Disk 上 - https://disk.yandex.ru/d/tIydIVE0PVg8wQ