2011-08-11 5 views
0

WPFを例として使用しています。私たちがcontol Xを持っていて、背景を画像に設定したとします。次に、マウスオーバーで背景画像を持たないことを望みます。これはx:Nullで実現できます。しかし、x:Nullを指定しないと、同じイメージが保持されます。WPFのプロパティとx:NULLなど

WPFをサポートしていないplatfrom用のカスタムスキンエンジンを作成しようとしています。私はこの振る舞いを再現する方法を理解しようとしています。問題は、私がクラスXControlStyleと、このクラスの2つのインスタンスが正常な状態と1つのマウスオーバーの場合、それがwpfで行ったことを達成するための明白な方法ではないことです。

設定例:mouseover.Backgroundimage = nullそれは、ユーザーがnullに設定されているかどうか、またはデフォルトでnullであるかどうかを伝えることはできません..この問題は、値の型で悪いです..すべてのプロパティを2回is notエレガントなソリューション..また、私はそれのようなBackgroundImage私は3つのソリューション(プロパティ、クラスのラッパーでプロパティ値をラップ、格納するための辞書クラス)を考え出したが、私は最後に私は満足していない実装しました。
MSDNのドキュメントを読んで、インスピレーションを得ています。私は、これらのデータを何らかの形でメタデータとして保存していると思いますか?だから私は、メタデータが何とか私の問題の解決策であるかどうか疑問に思っています。 アイデア?

答えて

0

これらのことはdependency property value precedenceで行われます。値の検索システムがあり、最も高い優先順位を持つ値が選択されています。依存性プロパティ自体は辞書のようなものであり、様々な層にそれらのいくつかが存在する。要素自体とスタイル。このシステムは非常に複雑で、私はそれを再現することはそれ自身の巨大なプロジェクトだと主張するでしょう。

関連する問題