wpfのスタイルとリソース

7799 ワード

wpfのスタイルとリソース


1、スタイル:


スタイルはstyleプロパティによって設定され、styleプロパティはsetter要素によって変更され、setter要素はpropertyとvalueプロパティを含み、指定したプロパティに指定した値を設定します.次に、buttonコントロールスタイルを簡単に設定する例を示します.
書き方一:TargetTypeをButtonと指定する.
   <Button >
            <Button.Style>
                <Style TargetType="Button">
                    <Setter Property="Background" Value="red"/>
                    <Setter Property="Width" Value="100"/>
                    <Setter Property="Height" Value="40"/>
                Style>
            Button.Style>
        Button>

書き方2、styleではTargetTypeを指定せず、Propertyの属性の前に制限修飾を加える.
  <Button >
            <Button.Style>
                <Style>
                    <Setter Property="Button.Background" Value="red"/>
                    <Setter Property="Button.Width" Value="100"/>
                    <Setter Property="Button.Height" Value="40"/>
                Style>
            Button.Style>
        Button>

2、資源


上記のコントロールのスタイルは、同じフォームの他のコントロールでは使用できません.同じウィンドウの他のコントロールでもこのスタイルを使用できるようにするには、このスタイルをリソースとして定義する必要があります.このように、コントロールのstyle属性でリソースを参照することでスタイルを変更するには、次のようにします.Window.Resourcesでリソース定義リソースを定義するときにkeyが必要です.このkeyはリソースの参照値です.同様に、TargetTypeは事前に書く必要はありません.Propertyプロパティの前に修飾すればいいです.上記の例のように、
 
        <Style x:Key="buttonStyle" TargetType="{x:Type Button}">
            <Setter Property="Background">
                <Setter.Value>
                    "0,0" EndPoint="0,1">
                        Offset="0.0" Color="AliceBlue"/>
                        Offset="0.5" Color="Black"/>
                        Offset="0.9" Color="Red"/>
                    
                Setter.Value>
            Setter>
            <Setter Property="Width" Value="100">Setter>
            <Setter Property="Height" Value="50">Setter>
        Style>
    

リソースを定義したら、次のように使用できます.
 <Button Style="{StaticResource buttonStyle}">Button>

StaticResourceは静的検索リソースです.つまり、コンパイル時に、後で詳しく説明します.上記で定義リソースは、現在のウィンドウのすべてのButtonコントロールで参照できるが、プログラム内の他のウィンドウのButtonは使用できず、統一と利便性のためにAppにリソースを追加する.xamlファイルでは、プログラム全体を実現できるので、Buttonはリソース定義のスタイルを変更することができます.次のようになります.
    
        <Style x:Key="buttonStyle" TargetType="{x:Type Button}">
            <Setter Property="Button.Background">
                <Setter.Value>
                    "0,0" EndPoint="0,1">
                        Offset="0.0" Color="AliceBlue"/>
                        Offset="0.5" Color="Black"/>
                        Offset="0.9" Color="Red"/>
                    
                Setter.Value>
            Setter>
            <Setter Property="Button.Width" Value="100">Setter>
            <Setter Property="Button.Height" Value="50">Setter>
        Style>
    

次の編では、コード内のリソースのアクセスとプログラムセット間の参照について説明します.