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 }));