我创建了一个装饰器,它在OnRender方法中绘制了一些自定义图形。图形取决于包含装饰器的对象的位置。我通过Style来通过Template属性设置装饰器。问题是装饰器的OnRender方法在应用模板时只调用一次。因此,当我更改对象的位置并在该对象上调用InvalidateVisual()时,装饰器不会被重新渲染。WPF:使ControlTemplate中的控件失效
我已经设法通过设置对象的模板为空,然后重置回相同的模板像这样来解决此:
这是卓有成效的,但我敢肯定,这是不是它应该完成的方式。我错过了什么?