none
WPF下如何任意角度旋转图片 RRS feed

答案

  • 您好,

     

    你要旋转控件角度的话,可以设置其RenderTransform或是LayoutTransform属性,然后为其设置一个RotateTransform实例,并且设置Angle属性。下面是一个小例子供参考。

     

      <StackPanel>

            <Slider Value="0" Name="slider"  Minimum="0" Maximum="360" />

            <Button Content="Button" Width="120" Height="30">

                <Button.RenderTransform>

                    <RotateTransform x:Name="rotateTransform" Angle="{Binding ElementName=slider,Path=Value}" />

                </Button.RenderTransform>

            </Button>

            <TextBlock Text="{Binding ElementName=slider,Path=Value,StringFormat=Angle:{0}}"  />

    </StackPanel>

     

    如有不明白的地方请继续回复。

     

    谢谢。


    Jim Zhou -MSFT
    2009年5月18日 3:15
    版主

全部回复

  • 您好,

     

    你要旋转控件角度的话,可以设置其RenderTransform或是LayoutTransform属性,然后为其设置一个RotateTransform实例,并且设置Angle属性。下面是一个小例子供参考。

     

      <StackPanel>

            <Slider Value="0" Name="slider"  Minimum="0" Maximum="360" />

            <Button Content="Button" Width="120" Height="30">

                <Button.RenderTransform>

                    <RotateTransform x:Name="rotateTransform" Angle="{Binding ElementName=slider,Path=Value}" />

                </Button.RenderTransform>

            </Button>

            <TextBlock Text="{Binding ElementName=slider,Path=Value,StringFormat=Angle:{0}}"  />

    </StackPanel>

     

    如有不明白的地方请继续回复。

     

    谢谢。


    Jim Zhou -MSFT
    2009年5月18日 3:15
    版主
  • 我是新手,自学的,在网上也找了,可就是找不到点击按钮来实现效果的方案!!你能说得更清楚点吗?非常感谢!!!
    2012年11月15日 7:40
  •  <Image Source="aa.jpg" Margin="12,26,227,130" RenderTransformOrigin=".5,.5">
          <Image.RenderTransform>
            <RotateTransform x:Name="rotate" Angle="0" />
          </Image.RenderTransform>
        </Image>
        <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="324,100,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" >
          <Button.Triggers>
            <EventTrigger RoutedEvent="Button.Click">
              <BeginStoryboard>
                <Storyboard>
                  <DoubleAnimation From="0" To="60" Storyboard.TargetProperty="Angle" Storyboard.TargetName="rotate" />
                </Storyboard>
              </BeginStoryboard>
            </EventTrigger>
          </Button.Triggers>
        </Button>

    CS实现更简单

     private void button1_Click(object sender, RoutedEventArgs e)
            {
                rotate.Angle = 30;
            }

    2012年11月16日 1:58