1
AeroテーマでXPまたはVistaを実行しているときにマイナーな調整が必要なカスタムコントロールがあります。テーマを検出する簡単な方法はありますか(ユーザーがテーマを変更できるためオペレーティングシステムの検出が不十分です)これはスタイルのトリガーですか?WPFのXamlで現在のテーマを検出するにはどうすればよいですか?
は私が必要な外観を得るためにVista上の小さなマージンの変更を適用する必要があります。
<Setter Property="Margin"
Value="0,-1,0,-1" />
上記セッターが現在無条件である(例えばないトリガーで)が、2つのバージョンを持つ私を必要とします。
ソリューションはXamlのみである必要がありますが、必要であれば、DataTrigger
に関連付けるプロパティを公開することができます。
私はそれを考えていましたが、デザイナーのロジックをバックエンドに移していると思っていましたが、Xamlのテーマを検出する(またはそこに投影する)と、Xamlは視覚的な外観になりました。 –
@Sean:コンバーターはバインディングには便利ですが、その場合バインディングはありません。マークアップの拡張がおそらくより適切でしょう。 @レー:コンバーターやマークアップ拡張子は "バックエンド"ではありません...それらはフロントエンドの作業をするための単なる定型コードです。 –
@Thomas、私はXAMLからすべてを行うことができないことを知っていますが、コードの背後には一般的な情報を公開し、プレゼンテーション。 @ショーンの答えを読んで、私は彼のポイント(額を叩く)の一部を見逃したようだ。私が最後に実際に行ったことは、 "CurrentTheme"プロパティを含む一般的な設定MVVMを公開し、 "Luna"または "Aero"テーマを検出できるようにすることでした。 –