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

Nid*_*ocu 4 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>
...
Run Code Online (Sandbox Code Playgroud)

Gis*_*shu 7

我认为Icon属性符合您的需求.
但是,要回答原始问题,可以在撰写menuitem的内容时保留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>
Run Code Online (Sandbox Code Playgroud)