更改 WPF MenuItem 中的标题/内容?

3
我有一个使用c#和WPF开发的应用程序,它在任务栏中显示通知。设计如下图所示: enter image description here 我希望这个应用程序能够告诉用户通知图标被点击了。例如,如果您点击了“Change status”按钮,它会变成以下状态: enter image description here 主窗口设计中的代码如下:
<ContextMenu>
   <MenuItem 
      Header="LeftClicked" 
      Click="NodifierClick"/>
   <Separator/>
   <MenuItem Header="Reset" Click="NotifyIconClickReset" />
   <MenuItem Header="Show" Click="NotifyIconClickShow" />
   <MenuItem Header="Hide" Click="NotifyIconClickHide" />
   <MenuItem Header="Close" Click="NotifyIconClickClose" />
   <Separator/>
   <MenuItem Header="Exit" Click="NotifyIconClickExit" />
</ContextMenu>

我不知道如何更改System.Windows.Control.MenuItem类中的标题,有人有解决方案吗?

1个回答

0

这是一种快速而简单的方法:

private void NotifyIconClickReset(object sender, RoutedEventArgs e)
{
    ((MenuItem)sender).Header = "LeftClicked";
}

但是,如果您想要对菜单项进行一致的引用,并确保没有其他内容由于意外而更改了其标题,那么您可以为该项命名并引用它:

<MenuItem x:Name="_resetMenu" Header="Reset" Click="NotifyIconClickReset" />

private void NotifyIconClickReset(object sender, RoutedEventArgs e)
{
    _resetMenu.Header = "LeftClicked";
}

你能否不将“sender”参数向下转换为MenuItem,并避免命名MenuItems? - Gayot Fow
@AndrewArnold 非常感谢,顺便问一下,你知道如何将颜色从黑色改为灰色吗? - cindywmiao
取决于你想做什么。你可以使用 ((MenuItem)sender).IsEnabled = false 来禁用它,这将使其变灰,但如果你只想改变颜色,事情会变得有些棘手。请参见此答案 - Andrew

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接