2

我可以在一次投标中结合 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>

我不仅需要将 Line Start 和 End Points 绑定到点LeftRight,还需要添加 ( Left + Width / 2) 和 ( Top + Height / 2) (中心)。

那可能吗?

4

2 回答 2

3

是的,使用 aMultiBinding并在 a 中实现公式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 回答