我有一些代码:
<StackPanel VerticalAlignment="Center" HorizontalAlignment="Center" Orientation="Horizontal">
<StackPanel.RenderTransform>
<RotateTransform CenterX="50" CenterY="-10" Angle="45" />
</StackPanel.RenderTransform>
<TextBlock Text="{Binding XPath=@TestingAngle}"/>
</StackPanel>
有没有办法将rendertransform的angle属性绑定到一个值? 有没有像:
这样的结构<RotateTransform CenterX="50" CenterY="-10" Angle="{Binding XPath=@TestingAngle}" />
是否可以不使用代码隐藏文件(仅使用XAML)?
值TestingAngle应取自以下代码:
<Page.Resources>
<XmlDataProvider x:Key="TestData">
<x:XData>
<Information TestingAngle="30"/>
</x:XData>
</XmlDataProvider>
有没有办法写一个像:
这样的结构 <StackPanel.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform Angle="{Binding XPath=@TestingAngle}"/>
<TranslateTransform/>
</TransformGroup>
</StackPanel.RenderTransform>
提前致谢!
答案 0 :(得分:1)
您可以在XAML文件中定义资源并绑定到该资源...
<UserControl.Resources>
<System:Double x:Key="AngleResource">-3</System:Double>
</UserControl.Resources>
然后绑定到它......
<StackPanel>
<StackPanel.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform Angle="{DynamicResource AngleResource}"/>
<TranslateTransform/>
</TransformGroup>
</StackPanel.RenderTransform>
</StackPanel>
如果它不会更新,将其作为资源添加实际上只会让您重复使用 - 因此您可以与其他元素共享此角度并更新单个源。