代码之家  ›  专栏  ›  技术社区  ›  serhio

一个绑定中有两个属性?

  •  2
  • serhio  · 技术社区  · 15 年前

    我可以在一个投标中结合两个元素吗?

    <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

    有可能吗?

    2 回复  |  直到 15 年前
        1
  •  3
  •   Albin Sunnanbo    15 年前

    是的,使用 MultiBinding 并在一个 IMultiValueConverter .

    类似这样的情况,只有X1使用multibindings,其余的都没有变化。

    <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>
    
        2
  •  2
  •   Albin Sunnanbo    15 年前

    可以使用 MultiBinding

    有几个例子和教程在那里-例如。 this this 似乎告诉了你你需要知道的。

    推荐文章