SilverLight

メニュー

  1. スタイル定義ファイルの共有
  2. ResourceDictionary中のStyle動的取得
  3. 丸いボタンのスタイル

概要

視覚的な構造(FrameworkElementオブジェクト使用) 視覚的な動作(VisualStateオブジェクト使用)

TemplateVisualStateAttribute を使用してコントロールの状態を指定します。指定したそれぞれの状態に対して VisualState を作成し、GroupName を共有するすべての VisualState オブジェクトを VisualStateGroup に配置します。コントロールに視覚的な影響を与えるパブリック プロパティもコントロール コントラクトに含まれています。これらのプロパティを設定すると、ControlTemplate を新たに作成することなく、コントロールの外観を変更できます。

コントロールのスタイルとテンプレート:
http://msdn.microsoft.com/ja-jp/library/cc278075(v=vs.95).aspx

コントロール コントラクトには、3 つの要素があります。

  • コントロールのロジックが使用する視覚的要素。 TemplatePartAttribute 属性
  • コントロールの状態と各状態が属するグループ。 TemplateVisualStateAttribute を使用してコントロールの状態を指定します。 コントロールの特定な状態(MouseOver,MouseEnter)で、コントロールの外観を変更すること
  • コントロールに対して視覚的に作用するパブリック プロパティ。

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円で始められる本格的なお店のホームページ!

コメント:

  • 同一プロジェクト内に複数のスタイルファイルを存在する場合、スタイルファ
    イルの格納場所が異なっても、ファイル名を同じにするのはできません。 -- 2011/07/22 (金) 13:12:46
  • Navigation PageのスタイルのTemplateプロパティをカスタマイズできません。 -- 2011/10/04 (火) 16:31:22


(画像の文字列を入力して下さい)

トップ   編集 凍結 差分 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019/12/02 (月) 12:36:34 (1628d)

PCpዾyǗlgĂ܂}WŔ܂z 萔O~ył񂫁z Yahoo yV NTT-X Store

z[y[W ̃NWbgJ[h COiq ӂ邳Ɣ[ COsیI COze