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

かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

WPF4.5入門 その30「Menuコントロール」

メニュー系コントロール地味だけど、ちゃんとしたアプリだと使うところですよね。ということで今日は普通のメニューコントロールです。

Menuコントロール

Menuコントロールは、Window上部などに表示されるメニュー項目です。一般的にファイル、編集などの項目などがあります。WPFのMenuコントロールを使うと以下のようなメニューを作成することが出来ます。

f:id:okazuki:20140812122318p:plain

基本的な使い方

Menuコントロールも通常のコントロールと同様に、画面の好きな位置にレイアウトできます。そのため一般的なメニューの位置である画面上部に表示するためには、Gridなどのレイアウトコントロールを使い画面の上部に表示されるように調整する必要があります。 画面の置き場所をレイアウトする以外は、基本的にContextMenuコントロールと同様の方法で使うことが出来ます。上記の例のような画面を表示するためのXAMLを以下に示します。

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition />
    </Grid.RowDefinitions>
    <Menu>
        <MenuItem Header="ファイル(_F)" />
        <MenuItem Header="編集(_E)" />
        <MenuItem Header="オプション(_O)">
            <MenuItem IsCheckable="True" Header="オプション1" />
            <MenuItem IsCheckable="True" Header="オプション2" />
            <MenuItem IsCheckable="True" Header="オプション3" />
        </MenuItem>
    </Menu>
</Grid>

Gridコントロールを使用して、画面上部にMenuコントロールを配置しています。MenuコントロールではなくMenuItemコントロールの使い方になりますが、Headerプロパティに”_F”などのように記述すると、Altを押した後のキーボードショートカットを指定することが出来ます。 また、オプションメニューで示しているようにIsCheckableプロパティをtrueにすることで、チェック可能なメニュー項目を作成可能です。チェックの有無の確認はIsCheckedプロパティで指定可能です。

プロパティ 説明
public bool IsCheckable { get; set; } MenuItemがチェック可能かどうかを取得または設定します。Trueの場合に、チェック可能となります。
public bool IsChecked { get; set; } MenuItemがチェックされているかどうかを取得または設定します。チェックされている場合Trueになります。

過去記事