繁体   English   中英

按 F1 打开 wpf C# 中的子菜单项

[英]press F1 to open sub menuitem in wpf C#

我想更改圣键F1,而不是使用Alt + F打开菜单“文件”,我该怎么做? 谢谢

 <Grid>
    <Menu Background="Transparent">
        <MenuItem x:Name="asd" Header="_File">
            <MenuItem x:Name="a"  Header="1. _New" InputGestureText="ALT-N" Margin="0,18,0,0"/>
            <MenuItem Header="2. _Open" InputGestureText="Alt+O"/>
            <MenuItem Header="3. _Close"/>
            <MenuItem Header="4. Save"/>
            <Separator/>
            <MenuItem Header="5. Delete" Margin="0,8,0,0"/>
            <MenuItem Header="6. Rename"/>
            <Separator/>
            <MenuItem Header="7. Print" Margin="0,8,0,8"/>
            <Separator/>
            <MenuItem Header="8. Format Disk" Margin="0,8,0,8"/>
            <Separator/>
            <MenuItem Header="9. MINE(Decode)" Margin="0,8,0,8"/>
        </MenuItem>
    </Menu>
</Grid>  

获得所需行为的一种方法是将PreviewKeyDown事件侦听器添加到您的Grid或父级。

<Grid PreviewKeyDown="Grid_PreviewKeyDown">
    <Menu Background="Transparent">
        <MenuItem x:Name="asd" Header="_File">
            <MenuItem x:Name="a"  Header="1. _New" InputGestureText="ALT-N" Margin="0,18,0,0"/>
            <MenuItem Header="2. _Open" InputGestureText="Alt+O"/>
            <MenuItem Header="3. _Close"/>
            <MenuItem Header="4. Save"/>
            <Separator/>
            <MenuItem Header="5. Delete" Margin="0,8,0,0"/>
            <MenuItem Header="6. Rename"/>
            <Separator/>
            <MenuItem Header="7. Print" Margin="0,8,0,8"/>
            <Separator/>
            <MenuItem Header="8. Format Disk" Margin="0,8,0,8"/>
            <Separator/>
            <MenuItem Header="9. MINE(Decode)" Margin="0,8,0,8"/>
        </MenuItem>
    </Menu>
</Grid>  

然后在底层 C# 代码中添加以下动作事件

private void Grid_PreviewKeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.F1) // This filters what key was pressed
    {
        asd.IsSubmenuOpen = true; // This opens the menu
        e.Handled = true; // Setting this to true prevents the any other events from occurring due to the key press
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM