在旋转变换WPF中绑定角度

本文关键字:绑定 旋转变换 WPF | 更新日期: 2023-09-27 18:14:10

我有一些代码:
<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的角度属性绑定到值?有没有像

这样的结构?
<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>

提前感谢!

在旋转变换WPF中绑定角度

您可以在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>

如果它不打算更新,将它作为资源添加只会给你重用——所以你可以与其他元素共享这个角度并更新单个源。