В настоящее время я пытаюсь создать классы для WPF-приложения, похожего на рисование. У меня есть базовые классы LineMovement (линия от StartPoint до EndPoint) и PathMovement (линия, проходящая через все точки, указанные в свойстве Points типа PointCollection). Эти классы наследуются от 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>
Это возможно? Есть ли у вас другой подход, который мог бы сработать?
Заранее спасибо!