wpf - 如何使用加速器在 WPF 中制作自定义 MenuHeaders?

标签 wpf xaml templates styles menu

我想在 WPF 中制作一些自定义 MenuHeaders,以便我可以(例如)在菜单项中拥有一个图标和文本。

通常使用 MenuItems,如果您使用纯文本填充 Header 字段,您可以使用下划线添加加速器。例如,_File

但是,如果我想放入一个 UserControl,我相信这个功能会中断,我将如何做类似以下的事情?

<Menu>
<MenuItem>
    <MenuItem.Header>
    <UserControl>
        <Image Source="..." />
        <Label Text="_Open" />
    </UserControl>
    </MenuItem.Header>
</MenuItem>
...

最佳答案

我认为 Icon 属性符合您的需求。
但是,要回答最初的问题,可以在编写菜单项的内容时保留 Accelerator 功能。 如果您在 MenuItem 中嵌套了内容,则需要像下面的第一个一样显式定义 AccessText 属性 。当您使用内联表单时,这会自动处理。

 <Menu> 
   <MenuItem>
      <MenuItem.Header>
        <StackPanel Orientation="Horizontal">
          <Image Source="Images/Open.ico" />      
          <AccessText>_Open..</AccessText>
        </StackPanel>
      </MenuItem.Header>
    </MenuItem>
    <MenuItem Header="_Close" />
   </Menu>

关于wpf - 如何使用加速器在 WPF 中制作自定义 MenuHeaders?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59456/

相关文章:

c# - 在 XAML + windows 8 中渲染 Html

c++ - 在template<template<class> class T1, class T2>中,<class>是什么意思?

c# - 窗口关闭时正在运行的任务会发生什么情况?

.net - 视觉设计应用 : WPF or WinForms(GDI)?

c# - 如何仅在TreeView中设置顶级项目的样式?

c# - 修改控件模板时保留控件的主题风格

c# - 如何设置窗口的调整大小限制?

c++ - 避免在数字 C++ 中调用虚函数

c++ - 有没有办法决定模板类的模板参数类型?

c# - 了解 Action 和UriQuery