我目前尝试为类似绘画的 WPF 应用程序创建类。我必须基类 LineMovement(从 StartPoint 到 EndPoint 的线)和 PathMovement(穿过 PointCollection 类型的属性 Points 中指定的所有点的线)。这些类从 Control 继承并通过 ControlTemplate 获得它们的外观。
现在我想将(我称之为)PointMovers 添加到 ControlTemplate。这些应该是驻留在任一运动类中的每个点上的小视觉元素。它们应该成为一种抓取机制来拖动潜在的点。
问题当然是我不知道如何在 ControlTemplate 中创建可变数量的元素。如果我能做这样的事情会很酷:
<Style x:Key="{x:Type mov:PathMovement}" TargetType="{x:Type mov:PathMovement}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type mov:PathMovement}">
<Grid>
<Polyline Points="{TemplateBinding Points}" />
<!-- interesting part start -->
<foreach loopvariable="Point" in="{TemplateBinding Points}">
<PointMover Point="Point" />
</foreach>
<!-- interesting part end -->
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
这可能吗?您是否有另一种可行的方法?
提前致谢!