【发布时间】:2011-05-15 08:59:31
【问题描述】:
我希望创建一个自定义面板或控件来创建非常特殊类型的项目。
基本上,目的是拥有一个控件,您可以向其提供对象列表,并将这些对象中的每一个放入一个按钮中。问题是按钮应该像甜甜圈一样排列成一个圆圈。类似于下图。
但是,如果可以的话,现在想象一下,这些彩色部分中的每一个都是一个按钮。它们也将具有按钮的所有功能,例如鼠标悬停和事件。
所以,问题的首当其冲是: 我应该使用什么样的技术来创建这种控制? 有没有办法在按钮上进行某种“曲率”变换?
看起来我真的在这里寻找两个不同的东西,对吧?
我的意思是,我可以将列表中的每个项目放入一个 ItemsControl 中,该控件有一个按钮作为它的 ItemTemplate。所以我只需要两件事:
其中第一个是径向布局面板(我已经看到了其中的一些)。
第二种方法是让每个按钮都有某种旋转和曲率变换。
有什么想法吗?
【问题讨论】:
-
您是否打算将通常是矩形按钮的按钮旋转并变形为圆形,或者您是否只需要每个项目容器都处于该形状,然后包含正常显示的内容(即矩形而不旋转)?
-
我希望实现按钮的旋转和变形。我相信肯特在下面概述了一个非常漂亮的解决方案,它将达到预期的结果。
-
你能按照你想要的方式让它工作吗?
-
我们最终放弃了这个想法,所以我在实际实现它的道路上并没有走得太远。但我坚信,如果你按照下面的步骤,你会到达那里。它可能不会那么简单,您将不得不处理诸如根据项目数量动态调整按钮大小等事情,这可能会变得很棘手(试图让它们围绕圆而不是以一种奇怪的方式咕噜咕噜)。
标签: wpf panel itemscontrol radial