xmlns:ig="http://schemas.infragistics.com/xamlThemes"
このトピックは ResourceWasher コンポーネントをアプリケーションに追加し、リソース内で定義された色をウォッシングする方法を説明します。
まず以下のトピックを読む必要があります。
以下の表は、ResourceWasher コンポーネントの構成可能な動作の一部を示しています。
Infragistics 名前空間を追加します。
必要な NuGet パッケージを追加します。
ResourceWasher をアプリケーションに追加するには、Infragistics.WPF NuGet パッケージをプロジェクトに追加する必要があります。NuGet フィードのセットアップと NuGet パッケージの追加の詳細については、NuGet フィード ドキュメントを参照してください。
Infragistics 名前空間を追加します。
XAML の場合:
xmlns:ig="http://schemas.infragistics.com/xamlThemes"
Visual Basic の場合:
Imports Infragistics.Windows.Themes
C# の場合:
using Infragistics.Windows.Themes;
ResourceWasher コンポーネントをアプリケーションに追加
XAML の場合:
<ig:ResourceWasher />
Visual Basic の場合:
Dim resourceWasher As ResourceWasher = New ResourceWasher()
C# の場合:
ResourceWasher resourceWasher = new ResourceWasher();
以下の表では、望ましい構成をプロパティ設定にマップしています。プロパティには ResourceWasher クラスから直接アクセスします。
ウォッシング リソースで使われる色を定義
ResourceWasher コンポーネントを設定する際の重要な部分はこのプロセスで使われる色を設定することです。
XAML の場合:
<ig:ResourceWasher WashColor="[your color]" />
Visual Basic の場合:
resourceWasher.WashColor = [your color]
C# の場合:
resourceWasher.WashColor = [your color];
ウォッシング プロセスが開始される時を設定します。
ロード後直ちにリソースを処理したい場合には、AutoWash プロパティを true に設定します。
XAML の場合:
<ig:ResourceWasher AutoWash="True" />
Visual Basic の場合:
resourceWasher.AutoWash = True
C# の場合:
resourceWasher.AutoWash = true;
ウォッシング プロセスを手動で開始させたい場合には、AutoWash プロパティを false に設定しコード内で WashResources メソッドを呼び出します。
Visual Basic の場合:
resourceWasher.WashResources()
C# の場合:
resourceWasher.WashResources();
適用される色変化のタイプを設定
ResourceWasher でサポートされる色ウォッシュのメソッドには HueSaturationReplacement と SoftLightBlend の 2 つがあります。ResourceWasher 上の WashMode プロパティを自分の選択として設定します。
XAML の場合:
<ig:ResourceWasher WashMode="SoftLightBlend"/>
Visual Basic の場合:
resourceWasher.WashMode = WashMode.SoftLightBlend
C# の場合:
resourceWasher.WashMode = WashMode.SoftLightBlend;
プロセスで使用するソース ディクショナリの設定
XAML の場合:
<ig:ResourceWasher.SourceDictionary>
<ig:ResourceWasher Source="[your dictionary]" />
<ig:ResourceWasher.SourceDictionary>
Visual Basic の場合:
resourceWasher.SourceDictionary = [your dictionary]
C# の場合:
resourceWasher.SourceDictionary = [your dictionary];
1 つの辞書内で異なる要素に対し異なるウォッシュ カラーとモードを使用
異なる要素を異なるウォッシュ設定でウォッシュする (または、ある要素をウォッシュから除外する) ためには、添付プロパティ ig:ResourceWasher.WashGroup を用いてグループに要素を定義する必要があります。ひとつのグループをウォッシュから除外するには、ig:ResourceWasher.IsExcludedFromWash を true に設定します。
XAML の場合:
<Page.Resources>
<SolidColorBrush x:Key="Background1" Color="Wheat"
ig:ResourceWasher.WashGroup="WashGroup1"
ig:ResourceWasher.IsExcludedFromWash="False" />
<SolidColorBrush x:Key="Background2" Color="BlueViolet"
ig:ResourceWasher.WashGroup="WashGroup2"
ig:ResourceWasher.IsExcludedFromWash="False" />
<SolidColorBrush x:Key="Background3" Color="Honeydew"
ig:ResourceWasher.WashGroup="WashGroup3"
ig:ResourceWasher.IsExcludedFromWash="True" />
<SolidColorBrush x:Key="Background4" Color="Orange"
ig:ResourceWasher.WashGroup="WashGroup4"
ig:ResourceWasher.IsExcludedFromWash="False" />
</Page.Resources>
いったんウォッシュ グループがリソース内に定義されると、それを WashGroupCollection に追加し、それをコンポーネントの WashGroups プロパティに設定できます。
XAML の場合:
<ig:ResourceWasher WashColor="Red">
<ig:ResourceWasher.WashGroups>
<ig:WashGroupCollection>
<!--これは赤でウォッシュされます-->
<ig:WashGroup Name="WashGroup1" />
<!--これは赤をオーバーライドして、青でウォッシュされます-->
<ig:WashGroup Name="WashGroup2" WashColor="Blue" />
<!--これは IsExcludedFromWash="True" として定義されるため、全くウォッシュされません-->
<ig:WashGroup Name="WashGroup3" />
<!--WashGroup4 は ResourceDictionary Washed の一部であるため、赤でウォッシュされます -->
</ig:WashGroupCollection>
</ig:ResourceWasher.WashGroups>
</ig:ResourceWasher>