読者です 読者をやめる 読者になる 読者になる

プログラマーな日々

プログラマー兼SEです。好きなツール:WorkFlowy、好きな言語:C#、好きなAWSのサービス:EMR。

コントロールにアクセスキーを設定する

.NET WPF

アプリ実行

起動

[Alt + B]押下


ソースコード

App.xaml
<Application x:Class="HelloWorld.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="Button.xaml">
</Application>
Button.xaml
<Page x:Class="HelloWorld.Button"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      mc:Ignorable="d" 
      d:DesignHeight="300" d:DesignWidth="300"
	Title="Button">
    <Button
        Click="Button_Click"
        Width="100"
        Height="30"
        >
        <!-- アクセスキーを表す記号は"_" -->
        _Button
    </Button>
</Page>
Button.xaml.cs
using System.Windows;
using System.Windows.Controls;

namespace HelloWorld {
    public partial class Button : Page {
        public Button() {
            InitializeComponent();
        }

        private void Button_Click(object sender, RoutedEventArgs e) {
            MessageBox.Show("Button_Click");
        }
    }
}

参考

エッセンシャル WPF P119より引用

おもしろいことに、WPFのコントロールでは、キーボードアクセスキーを表す記号が「&」から「_」に代わっています。

「&」に関するXMLのルールにより、アクセスキーが必要なすべての個所で「&」という冗長な表記をしなければならなかったというのが大きな理由です。