バージョン

既存のコントロール テーマの拡張 (ThemeManager)

トピックの概要

目的

このトピックでは、Infragistics ThemeManager™ を使用して既存のコントロール テーマを拡張する方法について説明します。

前提条件

このトピックを理解するために、以下のトピックを参照することをお勧めします。

トピック 目的

このトピックでは、Infragistics ThemeManager を使用して FrameworkElement にテーマを適用する方法について説明します。

このトピックでは、xamTileManager コントロールをページに追加する方法について説明します。

このトピックの内容

このトピックは、以下のセクションで構成されます。

既存のテーマの拡張 - 例

概要

以下の手順では、ThemeManager を使用して、xamTileManagerOffice2013 のテーマを拡張します。

プレビュー

以下のスクリーンショットは最終結果のプレビューです。

Extending an Existing Theme 1.png

要件

以下は、xamTileManagerOffice2013 テーマを拡張するための一般要件です。

  • NuGet パッケージの参照:

    • Infragistics.WPF.TileManager

    • Infragistics.WPF.Themes.Office2013

NuGet フィードのセットアップと NuGet パッケージの追加の詳細については、NuGet フィード ドキュメントを参照してください。

  • 名前空間:

    • Infragistics® 名前空間への参照: (xmlns:ig="http://schemas.infragistics.com/xaml")

前提条件

この手順を実行するには、以下が必要です。

  • ページがある Microsoft® Visual Studio® WPF プロジェクト

  • プロジェクトに追加した必要な NuGet パッケージ参照および名前空間 (要件を参照)

  • 以下のテーマ リソースをプロジェクトに追加します。

手順

以下の手順では、変更された Office2013 テーマを拡張し xamTileManager コントロールに適用する方法を示します。

  1. リソース ディレクトリへの xamTileManager のテーマの作成

詳細は、 ExtendedTheme.xamTileManager.xaml を参照してください。

  1. Office2013Theme クラスから派生する拡張されたテーマ クラスの作成

Office2013Theme クラスから派生する、ExtendedOffice2013Theme という名前のクラスを作成します。

C# の場合:

public class ExtendedOffice2013Theme : Office2013Theme
{
// クラスの実装
}

Visual Basic の場合:

Public Class ExtendedOffice2013Theme Inherits Office2013Theme
    ' クラスの実装
End Class
  1. 拡張されたテーマ クラスの ConfigureControlMappings メソッドへの上書き

拡張されたテーマ クラスの ConfigureControlMappings メソッドを上書きします。

C# の場合:

protected override void ConfigureControlMappings()
{
    // すべてのコントロールのマッピングを ConfigureControlMappings メソッドの基本実装
	// への呼び出しを介してプリセットします
    base.ConfigureControlMappings();
    string assemblyFullName = typeof(ExtendedOffice2013Theme).Assembly.FullName;
    // XamTileManager コントロールのマッピングをオーバーライドします
    Mappings[ControlMappingKeys.XamTileManager] =
		ThemeBase.BuildLocationString(assemblyFullName, @"/ExtendedTheme.xamTileManager.xaml");
}

Visual Basic の場合:

Protected Overrides Sub ConfigureControlMappings()
    ' すべてのコントロールのマッピングを ConfigureControlMappings メソッドの基本実装
	' への呼び出しを介してプリセットします
    MyBase.ConfigureControlMappings()
    Dim assemblyFullName As String = GetType(ExtendedOffice2013Theme).Assembly.FullName
    ' XamTileManager コントロールのマッピングをオーバーライドします
    Mappings(ControlMappingKeys.XamTileManager) = _
		ThemeBase.BuildLocationString(assemblyFullName, "/ExtendedTheme.xamTileManager.xaml")
End Sub
  1. 拡張されたテーマのコントロールへの適用

拡張されたテーマをコントロールに適用します。

XAML の場合:

<Grid>
    <ig:ThemeManager.Theme>
 <extendedTheme:ExtendedOffice2013Theme />
    </ig:ThemeManager.Theme>
    <ig:XamTileManager>
        <ig:XamTile Header="TILE 1"
                    IsMaximized="True" />
        <ig:XamTile Header="TILE 2" />
        <ig:XamTile Header="TILE 3" />
        <ig:XamTile Header="TILE 4" />
    </ig:XamTileManager>
</Grid>

全コード

以下は、この手順の完全なコードです。

ウィンドウの XAML コード

XAML の場合:

<Grid>
    <ig:ThemeManager.Theme>
        <extendedTheme:ExtendedOffice2013Theme />
    </ig:ThemeManager.Theme>
    <ig:XamTileManager>
        <ig:XamTile Header="TILE 1"
                    IsMaximized="True" />
        <ig:XamTile Header="TILE 2" />
        <ig:XamTile Header="TILE 3" />
        <ig:XamTile Header="TILE 4" />
    </ig:XamTileManager>
</Grid>

ExtendedOffice2013Theme.cs

C# の場合:

public class ExtendedOffice2013Theme : Office2013Theme
{
    protected override void ConfigureControlMappings()
    {
        // すべてのコントロールのマッピングを ConfigureControlMappings メソッドの基本実装
		// への呼び出しを介してプリセットします
        base.ConfigureControlMappings();
        string assemblyFullName = typeof(ExtendedOffice2013Theme).Assembly.FullName;
        // XamTileManager コントロールのマッピングをオーバーライドします
        Mappings[ControlMappingKeys.XamTileManager] =
			ThemeBase.BuildLocationString(assemblyFullName, @"/ExtendedTheme.xamTileManager.xaml");
    }
}

Visual Basic の場合:

Public Class ExtendedOffice2013Theme Inherits Office2013Theme
    Protected Overrides Sub ConfigureControlMappings()
        ' すべてのコントロールのマッピングを ConfigureControlMappings メソッドの基本実装
		' への呼び出しを介してプリセットします
        MyBase.ConfigureControlMappings()
        Dim assemblyFullName As String = GetType(ExtendedOffice2013Theme).Assembly.FullName
        ' XamTileManager コントロールのマッピングをオーバーライドします
        Mappings(ControlMappingKeys.XamTileManager) = _
            ThemeBase.BuildLocationString(assemblyFullName, "/ExtendedTheme.xamTileManager.xaml")
    End Sub
End Class

関連コンテンツ

このトピックの追加情報については、以下のトピックも合わせてご参照ください。

トピック 目的

このトピックでは、Infragistics ThemeManager を使用して FrameworkElement にテーマを適用する方法について説明します。

このトピックでは、Infragistics ThemeManager を使用してアプリケーションにテーマを適用する方法について説明します。

このトピックでは、サポートされるマイクロソフトの WPF コントロールのテーマ設定を、Infragistics ThemeManager を使用して有効または無効にする方法を説明します。

このトピックでは、Infragistics ThemeManager を使用して、新しいカスタム テーマを作成し適用する方法について説明します。