如何用VB.NET在运行时修改XAML中Image的RotateTransform角度
实现方法
你可以通过两种方式在VB.NET代码里修改这个Image控件的旋转角度:
方法一:遍历TransformGroup找到RotateTransform(无需修改原有XAML)
在按钮的Click事件处理代码中,先获取Image的TransformGroup,然后遍历它的子变换,找到RotateTransform实例后修改其Angle属性:
Private Sub Button_Click(sender As Object, e As RoutedEventArgs) ' 获取TransformGroup Dim transformGroup As TransformGroup = CType(Yelkovan.RenderTransform, TransformGroup) ' 遍历子变换找到RotateTransform For Each transform As Transform In transformGroup.Children Dim rotateTransform As RotateTransform = TryCast(transform, RotateTransform) If rotateTransform IsNot Nothing Then ' 修改角度为45度 rotateTransform.Angle = 45 Exit For End If Next End Sub
方法二:给RotateTransform命名(更简洁,需修改XAML)
先修改你的XAML,给RotateTransform加上x:Name属性,这样可以直接在代码中引用它:
<Image x:Name="Yelkovan" HorizontalAlignment="Left" Height="163" Margin="178,80,0,0" VerticalAlignment="Top" Width="14" Source="/k-yelkovan.png" RenderTransformOrigin="0.558,0.863"> <Image.RenderTransform> <TransformGroup> <ScaleTransform/> <SkewTransform/> <RotateTransform x:Name="YelkovanRotate" Angle="-30"/> <TranslateTransform X="27.336" Y="-7.117"/> </TransformGroup> </Image.RenderTransform> </Image>
然后在按钮点击事件里直接修改角度:
Private Sub Button_Click(sender As Object, e As RoutedEventArgs) YelkovanRotate.Angle = 45 End Sub
两种方法都能实现你要的效果,方法二更直观高效,推荐使用。
内容的提问来源于stack exchange,提问作者AkKi
相关产品推荐
相关产品推荐

