В настоящее время я пытаюсь создать классы для 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>
Возможно ли это? У вас есть другой подход, который может сработать?
Заранее спасибо!