[解決済み] Generic.xamlの特徴とは?
質問
ResourceDictionaryファイルを再利用したり、チームの他のメンバーと共有したりするために、どのように整理したらよいかを考えています。
しかし、MSDNでGeneric.xamlを検索したり、Googleで検索しても、ブログの記事やフォーラムの質問がヒットするだけで、本当に権威のある明確なものは見つかりません。
Generic.xamlとMyRandomlyNamedResourceDictionary.xamlの違いは何ですか?どちらにしても、ライブラリに格納されているResourceDictionaryをSource属性で参照する必要があるようです。例えば、、、。
<Application.Resources>
<ResourceDictionary
Source="/CommonLibraryWpfThemes;component/Themes/Generic.xaml"
</Application.Resources>
では、Generic.xamlは具体的にどのような利点をもたらすのでしょうか?アプリケーションに複数の外観を与えようとしない場合(つまり、テーマが1つしかない場合)、これは何か意味があるのでしょうか?
どのように解決するのですか?
WPF のすべてのコントロールにはデフォルトのスタイルがあり、特にコントロールのデフォルトの
ControlTemplate
. WPF は、コントロールと同じアセンブリの Themes フォルダにある特別なリソース辞書でデフォルトのスタイルを探します。デフォルト スタイルのキーは
Control.DefaultStyleKey
依存性プロパティは、コントロールの各サブクラスでオーバーライドされるデフォルト値です。
リソース辞書の名前は現在のWindowsテーマに依存します。例えば、Aeroテーマを使用しているVistaでは、辞書の名前はAero.NormalColor.xaml、デフォルトテーマを使用しているXPでは、Luna.NormalColor.xamlとなります。テーマ辞書にスタイルがない場合は、Generic.xaml を検索します。つまり、テーマに依存しない外観のコントロールを検索します。
これは、直接または間接的にControlから派生したクラスなど、あなたが定義したカスタムコントロールにのみ適用されます。標準のコントロールのデフォルトのスタイルを変更するには、そのコントロールから派生したクラスで
DefaultStyleKeyProperty.OverrideMetadata
を静的コンストラクタで指定する必要がありますが、その場合は ControlTemplate を含む完全なスタイルを指定する必要があります。
ThemeInfo属性を使用すると、デフォルトのスタイルを外部アセンブリで検索するようにWPFに指示できることに注意してください。外部アセンブリの名前は
<
YourAssembly
>
.
<
テーマ名
>
.dll(例:PresentationFramework.Aero.dll)。
関連
-
[解決済み] WPFの場合、x:Name属性とName属性の違いは何ですか?
-
[解決済み】Visual Studio 2015の追加デバッグオプションの無効化
-
[解決済み] WPFのテキストラップとWrapWithOverflowの比較
-
[解決済み] wpf: ボタンがコマンドによって無効にされたとき、ツールチップを表示する方法は?
-
[解決済み] オーバーレイコントロールを他のすべてのコントロールの上に配置するには?
-
[解決済み] WPFバインディングを使用して2つのコマンドパラメータを渡す
-
[解決済み] スタックパネルでアイテムを整列させる?
-
[解決済み] WPF: グリッドに列/行のマージン/パディングを設定できますか?
-
[解決済み] Generic.xamlの特徴とは?
-
[解決済み] グリッドカラムの幅・高さを設定する際の「Auto」と「*」の違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
WPFバインディング(データバインディング)の使用方法
-
[解決済み] Windows 8 ランタイム(WinRT / Windowsストアアプリ / Windows 10 ユニバーサルアプリ)とSilverlightやWPFの比較はどうですか?[クローズド]
-
[解決済み】無料のWPFテーマがあれば教えてください。[クローズド]
-
[解決済み] WPFでデータトリガーに複数の条件を指定するには?
-
[解決済み] WPF TemplateBindingとRelativeSource TemplatedParentの比較
-
[解決済み] WPFでイベント処理のためにリソース辞書の後ろにコードを設定することは可能ですか?
-
[解決済み] WPF: グリッドに列/行のマージン/パディングを設定できますか?
-
[解決済み] MVVMテンプレートの好例
-
[解決済み] レンダリング時間やパフォーマンスの面で最も効率的なパネルはどのような順番になりますか?
-
[解決済み] ViewModelLocatorとは何ですか?また、DataTemplatesと比較した場合の長所と短所は何ですか?