我认为这是一个有趣的工程级问题。
我需要设计一个显示折线图的控件。我想要能够做的是使用设计师添加多个Pens
它实际上描述了数据和演示文稿,以便它以 Xaml 的形式结束:
<Chart>
<Pen Name="SalesData" Color="Green" Data="..."/>
<Pen Name="CostData" Color="Red" Data="..." />
...
</chart>
我的第一个想法是扩展
ItemsControl
为 Chart
类(class)。这会带我去我想去的地方还是我应该从不同的方向看它,例如延伸 Panel
?主要要求是能够在设计器中使用它而无需添加任何 C# 代码。为了使其可行,它需要在树 View 模型中保留其结构。换句话说,如果我在 Expression Blend 或 Mobiform Aurora 中使用它,我将能够从逻辑树中选择图表或选择任何单个笔来编辑它们的属性。
最佳答案
我会用 Chart 作为 ItemsControl,它的 ItemsPanel 是一个 Canvas(对于一些轻微的使用,我会用 Grid 作为 ItemsPanel)。每个 Pen 都是从 PolyLine 类派生的 CustomControl。这有任何意义吗?
关于wpf - 我从哪里开始设计包含子对象的自定义控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49562/