当前位置: 首页 > 知识库问答 >
问题:

为什么我不能对菜单中的多个项目使用相同的图标?

吕英才
2023-03-14

我有一个菜单项,如下所示

<MenuItem Header="Edit">
    <MenuItem Header="Copy Direct Link" Icon="{StaticResource CopyIcon}" Command="{Binding CopyImageCommand}" />
    <MenuItem Header="Copy Image Data" Icon="{StaticResource CopyIcon}" Command="{Binding CopyImageDataCommand}" />
    <MenuItem Header="Paste" Icon="{StaticResource PasteIcon}" Command="{Binding PasteImageCommand}" />
</MenuItem>

请注意,前两个项目使用相同的图标,我得到如下内容

我试着移除第二件物品,

<MenuItem Header="Edit">
    <MenuItem Header="Copy Direct Link" InputGestureText="Ctrl+C" Icon="{StaticResource CopyIcon}" Command="{Binding CopyImageCommand}" />
    <!--<MenuItem Header="Copy Image Data" InputGestureText="Ctrl+Alt+C" Icon="{StaticResource CopyIcon}" Command="{Binding CopyImageDataCommand}" />-->
    <MenuItem Header="Paste" InputGestureText="Ctrl+P" Icon="{StaticResource PasteIcon}" Command="{Binding PasteImageCommand}" />
</MenuItem>

然后我得到了一些东西

如何重用图标?


共有3个答案

杜辉
2023-03-14

尝试以下方法:

<MenuItem Header=“Paste“ >
<MenuItem.Icon><Image Height=“16“ Width=“16“ Source=“paste.jpg“ /></MenuItem.Icon>
</MenuItem>
宰父保臣
2023-03-14

您很可能在资源中将CopyIcon声明为图像类型,如下所示:

<Window.Resources>
  <Image x:Key="CopyIcon" Source="yourcopyicon.ico"/>
</Window.Resources>

因此,问题的根本原因是,图像是一个可视元素,因为它派生自FrameworkElement(它是一个可视元素),并且一个可视元素不能同时有多个父元素。这就是为什么第一个菜单项不显示图标,因为第二个菜单项重置了CopyIcon的父菜单项,使其自身成为CopyIcon的父菜单项。

希望这个解释对你有帮助。现在,按照梅莱克在回答中所说的去做。:-)

贺华容
2023-03-14

看这个问题

图像只能有一个父级,因此它将从第一个菜单项移动到第二个。你可以像这样添加x:共享属性

<Window.Resources>
    <Image x:Key="CopyIcon" x:Shared="False" Source="..." />
</Window.Resources>

来自msdn

x:共享属性
当设置为false时,修改WPF资源检索行为,以便对属性资源的请求为每个请求创建一个新实例,而不是为所有请求共享相同的实例。

 类似资料:
  • 我知道关于文本横向居中的话题不胜枚举。但我使用了搜索功能并尝试了答案。但这并不奏效。 我尝试了页边距-左:自动,页边距-右:自动,文本-对齐:中心等类nav-center。那不起作用。 我要Lorem Ipsum在Navbar的中心。 我做错了什么? 这是我的代码: null null

  • 根据Maven文档,将使用依赖项中介来决定使用哪个依赖项: 因此,假设我们首先声明依赖项,那么1.0版将在我们的应用程序中使用。这意味着依赖项将在运行时使用1.0版,而as是根据2.0版编译的。如果使用的是2.0版的一些特性,那么我们将会得到一个运行时错误(,等),这是不好的。 因此要“修复”这一点,我们可以从依赖项中排除依赖项,从而使用2.0版本。但是哦不!2.0版不向后兼容,因此我们最终会从得

  • 在我的项目中,电影和演员、电影和类别之间有着多对多的关系。当我尝试创建一部电影,然后尝试使用Select2添加演员和类别时,它不会列出可用的选项(输入字段看起来是灰色的,好像它们被锁定了)。我查看脚本是否正在加载,它们是否正在加载。这是我的密码。

  • 问题内容: 似乎以下代码应返回true,但返回false。 这有什么意义? 问题答案: 常规()和严格()相等之间的唯一区别是,严格相等运算符禁用类型转换。由于已经在比较两个相同类型的变量,因此使用的相等运算符的类型无关紧要。 不管您使用常规相等还是严格相等,对象比较仅 在您比较相同的精确对象时得出 。 也就是说,给定,,,但。 两个不同的对象(即使它们都具有零或相同的精确属性)也永远不会相等地进

  • 我有一个侧边栏,带有子菜单项。这些子段落始终显示在离开区块的顶部。请告诉我如何使子菜单项相对于侧边栏中父菜单项的高度显示在中间。就像在照片上一样。感谢 [![在此处输入图像描述][1][1][1]:https://i.stack.imgur.com/oEtuh.png

  • 问题内容: 当将多个列与以下数据框一起使用时,Pandas Apply函数存在一些问题 和以下功能 当我尝试使用以下功能时: 我收到错误消息: 我不明白此消息,我正确定义了名称。 非常感谢你在此问题上的任何帮助 更新资料 谢谢你的帮助。我确实在代码中犯了一些语法错误,索引应该放在’‘。但是,使用更复杂的功能仍然会遇到相同的问题,例如: 问题答案: 似乎你忘记了你的字符串。 在我看来,顺便说一句,以