私はRulerを実装する必要があり、Controlから派生し、いくつかのDependencyProperties(最小値、最大値、LowerValue、UpperValueなど)を持つCustomControl RangeSliderを持っています。Silverlight/WPF:DependencyProperty.AddOwner&Render on change
Xamlでは、RulerにはScale(Canvasから派生した)があり、Scalingを描画するのに同じプロパティが必要です。 LowerValueまたはUpperValueが変更された場合、スケールは再描画されます。だから私は追加する
public static readonly DependencyProperty LowerValueProperty =
RangeSlider.LowerValueProperty.AddOwner(typeof(Scale), new FrameworkPropertyMetadata(1d));
私は親指を動かすと、何かがスケールで発生する必要があります。まず、OnRender(DrawingContext)を実装し、RangeSlider FrameworkPropertyMetadataOptionsのLowerValuePropertyに追加しました。しかしそれは問題ではない、何も起こらない。さらに、Silverlightでは使用できないため、OnRender(DrawingContext)を使用したくありません。
さらに、RangeSliderのOnLowerValueChanged-Methodがなぜ発生しますが、LowerValueのセッターではないのでしょうか(少なくともデバッガーはそこでブレークしません)。
Silverlight & WPFは、RangeSliderのLowerValueが変更されたとき(OnLowerValueChangedからの昇格を除く)、スケールで自動的にメソッドを発生させる方法はありますか?
注:上記のコードはWPFコードです。 Silverlightでは、もちろんいくつかの違いがあります。なぜなら、Silverlightは他のものの中でも強要をサポートしていないからです。
コードはSilverlightとWPFで実行する必要があるため、私はOnRender(DrawingContext)を使用したくありません。
再セッターない発射:依存関係プロパティへの結合は舞台裏のSetValue()を介してです。 Setter/Getterはあなたのためのヘルパーとして存在しています(Xamlパーサでも使用すると思います)。 –