0

次のような更新メソッドを持つカスタム コントロールがあります。

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が自動的に処理する「自動」のものに置き換え/ラップしたい。

4

0 に答える 0