我有一个按钮,我想将scaleX和scaleY绑定到另一个元素的scaleX和scaleY,我该怎么做?
棘手的部分是我想将它绑定到一个元素,至少在初始化时,可能没有设置ScaleTransform ......
答案 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,但它将报告运行时绑定错误。