ViewMakerで生成するWPF/Silverlightコントロール(9)Button編
今回はButtonです。自動生成ではボタンは画面下部にまとめて並べられます。
Buttonコントロール
WPF/Silverlightいずれも標準でふくまれていて、ICommand型にバインドします。
ViewMakerで指定可能なButtonの項目は以下の通りです。
-
- ImageSource(イメージのソース)
WPFサンプルイメージとXAMLコード
<Button Name="Button1" Command="{Binding Path=Button1,Mode=OneWay}" Margin="5">Button1</Button> <Button Name="Button2" Command="{Binding Path=Button2,Mode=OneWay}" Margin="5"> <Image Source="{StaticResource ButtonImage}" /> </Button> <Button Name="Button3" Command="{Binding Path=Button3,Mode=OneWay}" Width="200" Foreground="Blue" Background="Azure" HorizontalAlignment="Left" Margin="5">Button3</Button>
SilverlightサンプルイメージとXAMLコード
<Button Name="Button1" Command="{Binding Path=Button1,Mode=OneWay}" Margin="5">Button1</Button> <Button Name="Button2" Command="{Binding Path=Button2,Mode=OneWay}" Margin="5"> <Image Source="{StaticResource ButtonImage}" /> </Button> <Button Name="Button3" Command="{Binding Path=Button3,Mode=OneWay}" Width="200" Foreground="Blue" Background="Azure" HorizontalAlignment="Left" Margin="5">Button3</Button>
ViewModelコード
[View(ViewControlType.StackPanel)] [ViewProperty(StackPanelViewControl.Properties.HeaderPosition, LayoutHeaderPosition.Hidden)] public class ButtonSample : ViewModel { [View(ViewControlType.Button)] public ICommand Button1 { get { return CreateCommand(() => this.ShowMessage("Button1")); } } [View(ViewControlType.Button)] #if !SILVERLIGHT [ViewProperty(ButtonViewControl.Properties.ImageSource, "/ViewMaker.SampleApplication;component/ButtonImage.png")] #else [ViewProperty(ButtonViewControl.Properties.ImageSource, "/SilverlightViewMaker.SampleApplication;component/ButtonImage.png")] #endif public ICommand Button2 { get { return CreateCommand(() => this.ShowMessage("Button2")); } } [View(ViewControlType.Button)] [ViewProperty(ButtonViewControl.Properties.Width, 200)] [ViewProperty(ButtonViewControl.Properties.Foreground, "Blue")] [ViewProperty(ButtonViewControl.Properties.Background, "Azure")] public ICommand Button3 { get { return CreateCommand(() => this.ShowMessage("Button3")); } } }
イメージの指定方法(改訂)
仕様自体を見直しました。StaticResourceに限定せず、ImageタグのSource属性の値を直接指定できるようにしました。より低レベルにすることで柔軟性を確保しました。