接上文浅谈avalonia与WPF的区别(一)https://blog.csdn.net/Mr_ccc/article/details/149190947?spm=1011.2124.3001.6209
实现细节区别
6.类处理程序
WPF:调用EventManager.RegisterClassHandler为事件添加类处理程序,静态处理函数
EventManager.RegisterClassHandler(typeof(MyControl), MyEvent, HandleMyEvent));static MyControl()
{
EventManager.RegisterClassHandler(typeof(MyControl), MyEvent, HandleMyEvent));
}
private static void HandleMyEvent(object sender, RoutedEventArgs e)
{
}
Avalonia:类处理程序不是静态的:通知会自动定向到正确的实例。
static MyControl()
{
MyEvent.AddClassHandler<MyControl>((x, e) => x.HandleMyEvent(e));
}
private void HandleMyEvent(RoutedEventArgs e)
{
}
7.数据模板(DataTemplates)
Avalonia | WPF |
`DataTemplates | Application` |
可以针对接口和派生类 | 不可以 |
同一集合内的 DataTemplate 是按照声明的顺序计算的 |
8.HierarchicalDataTemplate
WPF:HierarchicalDataTemplate等价于
Avalonia:TreeDataTemplate
9.RenderTransforms(渲染阶段对控件进行视觉变换的技术)
默认值不同,相同的代码会导致不同的渲染行为
WPF :RelativePoint.TopLeft
(0, 0)
Avalonia: RelativePoint.Center
(中心点)