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

雑記 - otherwise

最近はDQ10しかやっていないダメ技術者がちまちまと綴る雑記帳

ContextMenu

WindowsPhone

今日も Toolkit から、 ContextMenu の利用方法を紹介します。

ContextMenu はその名の通り、コントロールのコンテキストメニューを提供するコントロールです。
デスクトップアプリケーションや Silverlight ではマウスの右ボタンクリックでコンテキストメニューを表示しますが、 Windows Phone ではコントロールを Tap & Hold する事で表示します。

ContextMenu の利用方法

<TextBlock TextWrapping="Wrap" Text="つぶやきとか" FontSize="{StaticResource PhoneFontSizeLarge}">
  <tools:ContextMenuService.ContextMenu>
    <tools:ContextMenu>
      <tools:MenuItem Header="Reply" Command="{Binding ReplyCommand}" />
      <tools:MenuItem Header="引用して Reply" Command="{Binding ReplyWithQuoteCommand}" />
      <tools:MenuItem Header="お気に入りに追加" Command="{Binding AddFavoriteCommand}" />
      <tools:MenuItem Header="ReTweet" Command="{Binding ReTweetCommand}" />
      <tools:MenuItem Header="個別表示" Command="{Binding DetailCommand}" />
    </tools:ContextMenu>
  </tools:ContextMenuService.ContextMenu>
</TextBlock>

ContextMenu を利用する際は、コンテキストメニューを表示したいコントロールに対して、 ContextMenuService の ContextMenu 添付プロパティを設定します。
ContextMenu 添付プロパティには実際にコンテキストメニューとして表示するメニュー (MenuItem) を指定します。

MenuItem のプロパティ

Header
メニューのコンテンツを指定します。他のコントロールと同様に HeadetTemplate を使用して文字列以外の別のコントロールを表示する事も可能です。(あまりオススメはしません)
HeaderTemplate
メニューのコンテンツのテンプレートを指定します。
Command
メニューに対するコマンドを指定します。
CommandParameter
コマンドのパラメータを指定します。