WPF自定义面板/控件创建 - "甜甜圈"

Ant*_*ton 8 wpf panel itemscontrol radial

我希望创建一个自定义面板或控件来创建一个非常特殊类型的项目.

基本上,目的是有一个控件,你可以给出一个对象列表,它会将每个对象放入一个按钮.问题是按钮应该像圆环一样布置成圆形.与下图相似.

甜甜圈图表

但是现在想象一下,如果可以的话,每个彩色部分都是一个按钮.它们也具有按钮的所有功能,如鼠标悬停和事件.

所以,问题首当其冲的是:我应该采用什么样的技术来创造这种控制?有没有办法在按钮上进行某种"曲率"变换?

看起来我真的想在这里找两件事,对吧?

我的意思是,我可以将列表中的每个项目放入一个ItemsControl,它有一个按钮作为其ItemTemplate.所以我需要的是两件事:

第一个是径向布局面板(我见过其中的一些).

第二种方法是让每个按钮都有某种旋转和曲率变换.

有任何想法吗?

Ken*_*art 4

我认为您正在考虑三个不同的步骤:

  1. Panel将孩子们围成一圈的A。重要的是,面板必须更新其子项的只读附加依赖属性,告诉它们它们的布局位置(以度为单位的起始位置和以度为单位的结束位置)
  2. Button根据某些起始和结束位置呈现弧形的模板。
  3. 将两者结合起来,将按钮的开始和结束位置绑定到面板公开的附加值。