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 のボタンの状態です。
メニュー項目とツールボタンを設定する 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)−以上−