创建WPF自定义控件

时间:2009-10-31 10:20:24

标签: wpf custom-controls

我目前正在使用WPF创建用户界面,并希望在我的窗口上显示一个饼图。据我所知,这将涉及创建自定义控件 - 这不是将样式或模板应用于现有控件就足够了的情况。我已经阅读了几篇关于自定义控件的文章,所有提供详细描述的文章似乎都使用了非常不同的方法。

不同的作者从Control,UserControl或Canvas等中派生出自定义控件类。渲染在几个地方完成,包括在OnRender和OnApplyTemplate中,使用以下几种方法之一:DrawingVisual,GeometryDrawing或Shape。似乎有很多不同的方法可以简单地在屏幕上放置一些形状,我现在很困惑。

我想要实现的只是一个简单的饼图,只要点击其中一个饼的楔形就会暴露出一个事件。

是否有一个普遍认同的“最佳”方式来解决这个问题?

2 个答案:

答案 0 :(得分:2)

WPF Toolkit包含图表控件。由于源代码也可用,也许你可以看看它来获得灵感。我没有对它进行过多的调查,但也许你所寻求的已经实施了。

对于WPF中的自定义控件,我建议您获得WPF Control Development Unleashed的副本。我差不多走了一半,我必须说它非常好。它解释了有关创建自己的控件以及如何选择应该派生的类的所有内容。作者还解释了何时创建自己的控件,并且很好地将最常见的WPF控件(如Slider或ListBox)转换为一个看起来与原始版本完全不同的漂亮视觉控件。例如,他拿一个ListBox并将其变成一个雷达屏幕,显示正确定位的船只和潜艇,甚至没有省略清扫锥体。我怀疑你想要完成的事情可以用同样的技巧完成。

答案 1 :(得分:1)

在codeplex上签出wpf工具包。他们在路线图上有图表控件。