我可以在一个招架中合并两个元素吗?
<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
< / strong>)和( Top + Height / 2
)(中心)。
这可能吗?
答案 0 :(得分: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>
答案 1 :(得分:2)
您可以使用MultiBinding绑定到多个属性。