首页 文章

你会建议在WPF中构建这样的控件吗?

提问于
浏览
9

我需要构建一个看起来与此类似的WPF控件:alt text http://img251.imageshack.us/img251/6857/circle.png

每种颜色应该可点击和调整大小(或可选择) .

此控件将用于设置一天中的小时模式 . 我已经考虑过将24个按钮排成一个圆圈:

alt text http://img684.imageshack.us/img684/2184/buttonsk.png

另一个想法是绘制一个完整的圆并计算用户鼠标点击选择的位置,并绘制几个圆圈来表示数据 .

关于如何构建这个的任何其他/更好的想法? (请原谅我糟糕的画作) .

2 回答

  • 4

    听起来你想要一个自定义的ListBox(多个可选择/可点击的项目) . 对于布局,您可能希望使用某种类型的RadialPanel作为ItemsPanel . 您可能还需要更改ItemContainerStyle以使ListBoxItem看起来像上面所示,可能有一些触发器根据选择状态更改颜色 . 根据您需要从项目中获得的行为,您可能需要创建自定义ListBox / ListBoxItem派生自定义控件,但在很多情况下,内置行为将为您提供很长的路要走 . 要将它作为一个单元重用,您可以将ListBox及其24小时项目和自定义模板包装在UserControl中,并以您需要的任何形式公开选择数据作为依赖项属性(如表示所选小时数的IEnumerable数据项) ) .

    这有助于您入门吗?

  • 2

    我认为你会得到多个重叠或触摸控件的奇怪边缘效果 . 所以我会做一个自定义控件来做到这一点 . 它会将按钮上的鼠标位置转换为切片,然后执行相应的操作 .

    使用单一控件,您还可以提出一种合理的方式来处理键盘输入,并显示选择并允许多选行为 .

相关问题