WPF 対応の ToolButtonEx と MenuItemEx コントロール

Last Updated 2012/11/17


ツールバー上のツールボタンおよびイメージを表示するメニュー項目のためのコントロールです。IsEnabled プロパティが false のときのイメージのグレースケール化にも対応しています。


イメージを表示するメニュー項目およびツールバー上のツールボタンを設定する標準的な手順は次のとおりです。

  <MenuItem Command="New">
    <MenuItem.Icon>
      <Image Source="images/new.png" Width="16" Height="16" Stretch="Uniform"></Image>
    </MenuItem.Icon>
  </MenuItem>

  ....
	
  <Button Command="Open" Width="30" Height="30" ToolTip="既存のファイルを開く">
    <Button.Content>
      <Image Source="images/open.png" Width="24" Height="24" Stretch="Uniform"></Image>
    </Button.Content>
  </Button>

これでもひどく面倒というわけではありませんが、さらに手を抜く方法がないかと考えてみました。また、ボタンやメニュー項目の IsEnaled プロパティが false のときにイメージをグレースケール化する機能を付けました。

下図の左は IsEnabled = true、右は IsEnabled = false のボタンの状態です。

ToolButtonEx

メニュー項目とツールボタンを設定する XAML 構文は以下のとおり、一行ですみます。

<ctrl:MenuItemEx x:Name="mnuFileOpen" Header="ファイルを開く" ImageSource="images/Open.png" />

<ctrl:ToolButtonEx x:Name="btnOpen" ImageSource="images/Open.png" ToolTip="Open" />

上記のコードでは Command プロパティなどの設定を含みませんが、動作は通常の MenuItem や Button コントロールとまったく同じです。

次の ZIP ファイルはコントロールのソースファイルおよびテスト用のアプリケーションを含みます。Visual Studio 2010 C# WPF で作りました。フリーウエアですので、どなたでも自由にご利用ください。

ToolButtonEx.zip (28,393 bytes)

−以上−