次のような更新メソッドを持つカスタム コントロールがあります。
public class MyControl : Canvas
{
// Dependency property for "data" used to draw the control here
public void Refresh()
{
Children.Clear();
// Using data, draw the control
Children.Add(new Line(...));
Children.Add(new Rectangle(...));
// etc.
}
}
現在、Refresh()
コントロールの外観を更新するたびに手動で呼び出す必要があります。私の依存関係プロパティは 用に設定されているためFrameworkPropertyMetadataOptions.AffectsArrange
、WPF は、プロパティを変更するとコントロールの配置に影響し、再描画する必要があることを認識しています。だからここに質問があります:
WPF はカスタム コントロールに再描画する必要があることを伝えるために何を使用しますか? それはイベントですか、それともオーバーライドですか? また、どのように使用する必要がありますか? さまざまなイベントとオーバーライドを処理しようとしましたが、何も機能していないようです。それで、これを行う正しい方法は何ですか?Refresh()
上記のメソッドを、WPFが自動的に処理する「自動」のものに置き換え/ラップしたい。