旋转变换WPF中的键角

时间:2014-07-21 14:55:40

标签: c# wpf xaml

我有一些代码:

<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>

提前致谢!

1 个答案:

答案 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>

如果它不会更新,将其作为资源添加实际上只会让您重复使用 - 因此您可以与其他元素共享此角度并更新单个源。