C# 从WPF中的代码旋转图像时出现问题

C# 从WPF中的代码旋转图像时出现问题,c#,wpf,vb.net,xaml,C#,Wpf,Vb.net,Xaml,我想在鼠标左键按下事件中旋转WPF窗体上的控件。我已经尝试过修改我在别处找到的代码,但我还没有完全达到目的 以下是我所拥有的: XAML: 我一直在尝试一些不同的东西,但似乎没有任何效果。我可以很好地阅读C#代码,所以如果你愿意回答这个问题,那就去做吧,我们在这里只使用VB。我也完全可以在XAML中完成这一切,但我似乎也无法让它发挥作用 谢谢 我认为问题在于您试图设置动画的对象无法设置动画: TransformedBitmap实现ISupportInitialize接口以优化多个属性的初始化。属

我想在鼠标左键按下事件中旋转WPF窗体上的控件。我已经尝试过修改我在别处找到的代码,但我还没有完全达到目的

以下是我所拥有的:

XAML:

我一直在尝试一些不同的东西,但似乎没有任何效果。我可以很好地阅读C#代码,所以如果你愿意回答这个问题,那就去做吧,我们在这里只使用VB。我也完全可以在XAML中完成这一切,但我似乎也无法让它发挥作用


谢谢

我认为问题在于您试图设置动画的对象无法设置动画:

TransformedBitmap实现ISupportInitialize接口以优化多个属性的初始化。属性更改只能在对象初始化期间发生。调用BeginInit表示初始化已开始,调用EndInit表示初始化已完成。初始化后,将忽略属性更改

如果将RenderTransform作为图像本身的目标,则相同的代码也会起作用:

<Image
    Name="UpArrow"
    Height="50"
    Width="50"
    MouseLeftButtonDown="UpArrow_MouseLeftButtonDown"
    RenderOptions.BitmapScalingMode="HighQuality"
    VerticalAlignment="Top"
    HorizontalAlignment="Left" 
    Margin="10,70,0,0">
    <Image.RenderTransform>
        <RotateTransform Angle="180"/>
    </Image.RenderTransform>
    <Image.Source>
        <TransformedBitmap Source="Images/1.png"  />
    </Image.Source>
</Image>

我正准备发布我发现了这个问题,或者更准确地说,我发现使用
RenderTransform
它可以工作。不过,很高兴知道为什么它不能与
TransformedBitmap
一起使用。我现在已经在XAML中实现了这一切。效果不错。谢谢你提供的信息。
Private Sub UpArrow_MouseLeftButtonDown(ByVal sender As System.Object, ByVal e As System.Windows.Input.MouseButtonEventArgs) Handles UpArrow.MouseLeftButtonDown
    Dim TransBitmap As TransformedBitmap = Me.UpArrow.Source
    Dim Trans As RotateTransform = TransBitmap.Transform
    Dim anim As New Animation.DoubleAnimation(0, New Duration(TimeSpan.FromSeconds(1)))
    Trans.BeginAnimation(RotateTransform.AngleProperty, anim)
End Sub
<Image
    Name="UpArrow"
    Height="50"
    Width="50"
    MouseLeftButtonDown="UpArrow_MouseLeftButtonDown"
    RenderOptions.BitmapScalingMode="HighQuality"
    VerticalAlignment="Top"
    HorizontalAlignment="Left" 
    Margin="10,70,0,0">
    <Image.RenderTransform>
        <RotateTransform Angle="180"/>
    </Image.RenderTransform>
    <Image.Source>
        <TransformedBitmap Source="Images/1.png"  />
    </Image.Source>
</Image>
Private Sub UpArrow_MouseLeftButtonDown(ByVal sender As System.Object, ByVal e As System.Windows.Input.MouseButtonEventArgs) Handles UpArrow.MouseLeftButtonDown
    Dim Trans As RotateTransform = Me.UpArrow.RenderTransform
    Dim anim As New Animation.DoubleAnimation(0, New Duration(TimeSpan.FromSeconds(1)))
    Trans.BeginAnimation(RotateTransform.AngleProperty, anim)
End Sub