SilverlightテクノロジーのStyleとStaticResource

13073 ワード

Silverlightを理解して使用するには、StyleとStaticResourcesに言及しなければなりません.簡単なStyleアプリケーションでは、コントロールに2つのスタイルを同時に指定する方法について重点的に説明します.StaticResourceを使用して、固定された集合リストをコントロールにバインドする固定された集合を設定するにはどうすればいいですか?次に、関連するアプリケーションの例を直接開始します.まず、最初のStyleでButtonボタンを設定し、最初のButtonスタイルでFontSize,Foreground,FontWeightを設定します.同時に別のスタイルMarginとContentを指定したい場合は、1つのコントロールに2つのスタイルを指定し、SLでは次のように実現します.

  
    
< Style TargetType = " Button " x:Key = " ButtonStyle " >
< Setter Property = " Foreground " Value = " Red " />
< Setter Property = " FontSize " Value = " 14 " />
   
< Setter Property = " Fontweight " Value = " bold " />
</ Style >

ボタンに、スタイルへの参照を追加します.

  
    
< Button Style = " {StaticResource ButtonStyle} " Content = " " ></ Button >

しかし、このときButtonに他のスタイルを指定したい場合は、どうすればいいですか?SilverlightのStyleでは、Baseonプロパティが指定されており、スタイルを継承することができます.したがって、スタイルのみを繰り返し使用する必要がある場合は、baseonを1つのスタイルで1回しか使用できないという欠点があります.次のように、新しいスタイルCustomBtnを追加します.

  
    
< Style TargetType = " Button " x:Key = " CustomBtn " BaseOn = " ButtonStyle " >
< Setter Property = " Margin " Value = " 4,0,4,0 " />
< Setter Property = " Content " Value = " " />
</ Style >

ここで、このボタンには、上記で定義したButtonStyleとCustomBtnで指定したスタイルが同時に表示されます.Styleについて以下の点を説明します.
1、Webページのように、一般的なスタイルを抽出し、個別のスタイルファイルに定義し、必要なインタフェースに対応するファイルの参照を追加することで、管理、再利用、修正が容易になる
2、デフォルトのスタイルを設定でき、各コントロールに暗黙的に適用でき、主にTargetTypeを指定する
3、スタイルはすぐに有効になり、StyleファイルとインタフェースでそれぞれContentを指定し、インタフェースのより近くに表示コントロールを指定するため、Styleで定義したContentを上書きする
4、現在のスタイルは、コントロールスタイル、インタフェーススタイル、グローバルスタイルです.
簡単に説明すると、アプリケーションで不明な場合は関連資料を再照会することができます.
2つ目の問題は、StaticResourceを定義することです.実際の応用では、このシーンのような固定的なドロップダウンリストがよくあります.身分証明書、パスポート、将校証、香港・マカオ・台湾証などがあります.
これらの内容は固定されており、分割データテーブルがデータベースに存在することに適応していない内容が少ないので、直接インタフェースに書きましょう.複数のインタフェースでこのリストを使用すると、重複したコードが、順序を乱しやすくなります.
StaticResourceに適用できるかどうか.次に、各インタフェースが使用されるときに対応するバインドを使用します.
解析では、まずエンティティを定義しましょう.このような情報にはname、Valueの2つの属性があり、関連クラスを直接宣言し、指定したリストに必要なフィールドを追加します.この場合、クラスが必要であることに注意してください.
リソースをバインドするときに反復表示するため、IEnumerateインタフェースを備えています.そのため、このインタフェースを明示的に実現します.これが完了したら、次にインタフェースに対応するアプリケーションを追加し、
バインドレンダリング、経験証、効果は予想に合致します.このように、このリストを使用するインタフェースは、各リストで個別に定義することなく、データの一貫性を保証します.
リソースバインドを使用しない場合は、インタフェースに個別に書きます.コードは次のとおりです.

  
    
< ComboBox >
< ComboBoxItem Content =" " />
< ComboBoxItem Content ="A. " />
< ComboBoxItem Content ="B. " />
< ComboBoxItem Content ="C. " />
< ComboBoxItem Content ="D. " />
< ComboBoxItem Content ="E. " />
</ ComboBox >

各使用インタフェースは、個別に定義されます.リストを使用すると、次のコードを個別に書くことができます.

  
    
< Grid.Resources >
< Options:CardType x:Name ="SlCardType" ></ Options:CardType >
</ Grid.Resources >
<!-- -->
< ComboBox x:Name ="cmbCardType" Style =" {StaticResource CmbStyle} " ItemsSource =" {StaticResource SlCardType} " DisplayMemberPath ="Name" SelectedValuePath ="Value" />

以上のコードはリソースのバインドを簡単に実現し、マルチインタフェースでこのリストを使用する必要があります.特に有効です.1つのインタフェースだけで使用すると、効果はあまり明らかではありません.
これは個人的な方法で、皆さんは良い提案と意見があって交流することができます.