メニュー †概要 †視覚的な構造(FrameworkElementオブジェクト使用) 視覚的な動作(VisualStateオブジェクト使用) TemplateVisualStateAttribute を使用してコントロールの状態を指定します。指定したそれぞれの状態に対して VisualState を作成し、GroupName を共有するすべての VisualState オブジェクトを VisualStateGroup に配置します。コントロールに視覚的な影響を与えるパブリック プロパティもコントロール コントラクトに含まれています。これらのプロパティを設定すると、ControlTemplate を新たに作成することなく、コントロールの外観を変更できます。 コントロールのスタイルとテンプレート: コントロール コントラクトには、3 つの要素があります。
TemplateVisualStateAttribute属性 コントロールの状態を定義する [TemplateVisualState(Name = "Normal", GroupName = "CommonStates")] [TemplateVisualState(Name = "MouseOver", GroupName = "CommonStates")] [TemplateVisualState(Name = "Pressed", GroupName = "CommonStates")] [TemplateVisualState(Name = "Disabled", GroupName = "CommonStates")] [TemplateVisualState(Name = "Unfocused", GroupName = "FocusStates")] [TemplateVisualState(Name = "Focused", GroupName = "FocusStates")] public class Button : ButtonBase <ControlTemplate TargetType="Button"> <Border x:Name="RootElement"> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="CommonStates"> <VisualState x:Name="Normal" /> <VisualState x:Name="MouseOver"> <Storyboard> <ColorAnimation Storyboard.TargetName="BorderBrush" Storyboard.TargetProperty="Color" To="Red" /> </Storyboard> </VisualState> <VisualState x:Name="Pressed"> <Storyboard > <ColorAnimation Storyboard.TargetName="BorderBrush" Storyboard.TargetProperty="Color" To="Transparent"/> </Storyboard> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups> <Border.Background> <SolidColorBrush x:Name="BorderBrush" Color="Black"/> </Border.Background> <Grid Background="{TemplateBinding Background}" Margin="4"> <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Margin="4,5,4,4" /> </Grid> </Border> </ControlTemplate> カスタマイズのFontStyleを利用する †http://forums.silverlight.net/forums/p/23868/85360.aspx 月額たった 1,050円で始められる本格的なお店のホームページ! コメント:
|