2

1回の入札で2つの要素を組み合わせることができますか?

<Canvas>
    <Ellipse Fill="Black" x:Name="dot1" Width="16" Height="16" Canvas.Left="124" Canvas.Top="133"/>
    <Ellipse Fill="Black" x:Name="dot2" Width="16" Height="16" Canvas.Left="221" Canvas.Top="40"/>
    <Line Stroke="Black" x:Name="line1" 
          X1="{Binding ElementName=dot1, Path=(Canvas.Left)}" 
          Y1="{Binding ElementName=dot1, Path=(Canvas.Top)}"

          X2="{Binding ElementName=dot2, Path=(Canvas.Left)}" 
          Y2="{Binding ElementName=dot2, Path=(Canvas.Top)}"
          />
</Canvas>

線の始点と終点を左のドットにバインドするだけでなく、(Left + Width / 2)と(Top + Height / 2)(中央)を追加する必要があります。

それは可能ですか?

4

2 に答える 2

3

はい、を使用してMultiBinding、式をに実装しIMultiValueConverterます。

編集:

X1のみがMultiBindingを使用し、残りは変更されないこのようなもの。

<Canvas>
    <Ellipse Fill="Black" x:Name="dot1" Width="16" Height="16" Canvas.Left="124" Canvas.Top="133"/>
    <Ellipse Fill="Black" x:Name="dot2" Width="16" Height="16" Canvas.Left="221" Canvas.Top="40"/>
    <Line Stroke="Black" x:Name="line1" 
    Y1="{Binding ElementName=dot1, Path=(Canvas.Top)}"

    X2="{Binding ElementName=dot2, Path=(Canvas.Left)}" 
    Y2="{Binding ElementName=dot2, Path=(Canvas.Top)}">
        <Line.X1>
            <MultiBinding Converter="{StaticResource myMultiValueConverter}">
                <Binding Path="(Canvas.Top)"/>
                <Binding Path="(Canvas.Left)"/>
            </MultiBinding>
        </Line.X1>
    </Line>
</Canvas>
于 2010-09-20T12:39:38.583 に答える
2

MultiBindingを使用して複数のプロパティにバインドできます。

これに関するいくつかの例とチュートリアルがあります-たとえば、これこれはあなたが知る必要があることを教えてくれるようです。

于 2010-09-20T12:39:52.780 に答える