WPF将一个元素的比例绑定到另一个元素的比例

时间:2009-12-22 21:31:57

标签: wpf binding

我有一个按钮,我想将scaleX和scaleY绑定到另一个元素的scaleX和scaleY,我该怎么做?

棘手的部分是我想将它绑定到一个元素,至少在初始化时,可能没有设置ScaleTransform ......

1 个答案:

答案 0 :(得分:5)

理想情况下,将其设置为bindee元素 总是具有ScaleTransform,但它是身份转换。然后命名为ScaleTransform,并使用通常的元素到元素语法绑定到它:

<TextBlock Text="One">
  <TextBlock.LayoutTransform>
    <ScaleTransform ScaleX="1"
                    ScaleY="1"
                    x:Name="s" />  <!-- Note the x:Name -->
  </TextBlock.LayoutTransform>
</TextBlock>

<TextBlock Text="Two">
  <TextBlock.LayoutTransform>
    <ScaleTransform ScaleX="{Binding ScaleX, ElementName=s}"
                    ScaleY="{Binding ScaleY, ElementName=s}" />
  </TextBlock.LayoutTransform>
</TextBlock>

如果您需要专门绑定元素,可以遍历属性,例如{Binding LayoutTransform.ScaleX, ElementName=someElement}。如果源元素没有LayoutTransform或者它不是ScaleTransform,那么这将是no-op,但它将报告运行时绑定错误。