0

"Edit a Copy" を使用して Blend で標準の WPF コントロールのデフォルトのスタイル/コントロールテンプレートを変更せずに (if のローカル コピーを作成するだけで)オーバーライドすると、一部のシナリオで既にテーマが壊れますか? 言い換えれば、異なるテーマは、標準コントロールに対して異なるコントロール テンプレートやスタイル定義を提供しますか? スタイル/コントロール テンプレートがテーマを尊重していることを確認するにはどうすればよいですか?

4

2 に答える 2

0

開発者は、機能の観点からコントロールを作成したいと考えています。どこでもデフォルトのコントロール スタイルを使用します。その後、グラフィック デザインの側面はプロにお任せください。コントロールの ControlTemplate をオーバーライドする場合、既にテーマ設定で忙しくしています。

ControlTemplates をいじくりまわす場合は、標準的なアプローチを試してみてください。そうしないと、グラフィック デザイナーがアプリケーションの作業を開始すると、彼/彼女はあなたに誓います :)

テーマは、個々のコントロールを対象とし、そのルック アンド フィールを再定義するスタイルのコレクションです。ControlTemplate を提供したコントロールは、それが適用されていないか、テーマ パックと一貫性がありません (x:Name でテーマにアクセスするか、タイプでテーマにアクセスするかによって異なります)。

ただし、DataTemplates をオーバーライドしても問題ありません。これは、テーマの干渉を心配することなく安全に行うことができます.

于 2009-10-16T14:03:46.243 に答える
0

はい、これはテーマを壊します。

はい、異なるテーマは異なるコントロール スタイルを提供します。MS Blend をお持ちの場合は、Blend のフォルダー (例: C:\Program Files\Microsoft Expression\Blend 3\SystemThemes\Wpf ) にあります。

テーマを尊重するには、コントロールのテーマごとに 1 つのスタイルも作成する必要があります。カスタム コントロールとテーマのサポートに関する多くのリソースがあります。1つだけ言及します:WPF:システムテーマに基づいてコントロールスタイルを変更する

于 2009-10-16T14:02:52.830 に答える