WPF自定义控件,如何使得xaml涉及器中的修改能立即反应到预览

这是我无意中发现的,xaml中设置的是依赖属性而不是包装器,所以我们可以直接在注册依赖属性那里设置回调,触发某个控件重绘,比如本身或父控件重绘。

xaml设计器就会实时更新

1 // !!!由于xaml解析是直接通过这里进行的,不通过包装器,所以通过设置这里的回调,可以使得在编辑xaml自定义依赖属性时可以立即看到变化
2 public static readonly DependencyProperty OffsetProperty =
3     DependencyProperty.Register("Offset", typeof(double), typeof(ZAxis), new PropertyMetadata(0d, (owner,e) =>
4     {
5         //这里调用InvalidateVisual触发重绘,FindVisualAncestor是我自定义寻找父控件用的
6         MeasureTool.FindVisualAncestor<ZChart>(owner)?.InvalidateVisual();
7     }));

 

posted @ 2024-04-20 19:28  ggtc  阅读(6)  评论(0编辑  收藏  举报
//右下角目录