0

私は現在、ペイントのような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>

これは可能ですか?うまくいく可能性のある別のアプローチを考えていますか?

前もって感謝します!

4

1 に答える 1

1

ItemsControlと組み合わせて使用​​しますItemTemplate

<ItemsControl ItemsSource="{Binding Points}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <!-- rendered for each point -->
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

ユースケースの音によって、sについても読みたいと思うかもしれませんAdornerLayer

于 2009-08-24T14:08:27.353 に答える