WPF创建具有可自定义外观的控件

我们可以去定义一个新的控件或者去写一个新的控件模板去匹配旧的控件(换个样子),但是要匹配一些WPF定义好的规则,代码可以在MSDN找到
https://learn.microsoft.com/zh-cn/dotnet/desktop/wpf/controls/creating-a-control-that-has-a-customizable-appearance?view=netframeworkdesktop-4.8

我们通过上面这个例子来看看规则

  1. 继承一个已有控件CS,定义一堆你新增的依赖属性和路由事件
  2. 给这个控件去定义一个控件模板XAML(模板里面的控件元素需要定义名称A,B,C) 和RelativeSource绑定到CS里的依赖对象
  3. 在CS代码里OnApplyTemplate重载函数去抓A,B,C出来 UpButtonElement = GetTemplateChild("A") as RepeatButton; 注册它的事件
  4. 事件里触发依赖属性变化让XAML刷新数值或者激活动画 或者路由事件通知其他控件

细节知识点

  1. 控件声明加了TemplatePart指定关联的ControlTemplte XAML上必须有这个名称的部件 TemplateVisualState 有这个名称的动画
  2. ???
  3. 依赖属性注册
  4. 普通属性声明 对依赖属性读写
  5. 依赖属性变化回调触发路由事件
  6. 路由事件的注册
  7. 触发前端动画
  8. 查找XAML部件元素
  9. 样式动态变化(切换控件模板)旧事件注销 新事件注册
posted @ 2025-05-01 21:50  YYAN1987  阅读(21)  评论(0)    收藏  举报