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