C#的WPF程序,如何使Canvas有旋转效果

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#的WPF程序,如何使Canvas有旋转效果相关的知识,希望对你有一定的参考价值。

参考技术A 不知道提问者指的旋转效果是咋样的,所以就做了两种不同的。有啥问题尽管问哈^ ^
<Window.Resources>
<Storyboard x:Key="ScaleTransformStoryboard">
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:02" RepeatBehavior="Forever" Storyboard.TargetName="canvas1"
Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)">
<SplineDoubleKeyFrame Value="1"/>
<SplineDoubleKeyFrame Value="-1"/>
<SplineDoubleKeyFrame Value="1"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
<Storyboard x:Key="RotateTransformStoryboard">
<DoubleAnimation Storyboard.TargetName="canvas2" From="0" To="359" BeginTime="00:00:00" Duration="00:00:05" RepeatBehavior="Forever"
Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(RotateTransform.Angle)" >

</DoubleAnimation>
</Storyboard>
</Window.Resources>
<Window.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.Loaded">
<BeginStoryboard Storyboard="StaticResource ScaleTransformStoryboard"/>
<BeginStoryboard Storyboard="StaticResource RotateTransformStoryboard"/>
</EventTrigger>
</Window.Triggers>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Canvas x:Name="canvas1" Width="100" Height="100" Background="Aquamarine" Grid.Column="0">
<Canvas.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1"/>
</TransformGroup>
</Canvas.RenderTransform>
</Canvas>

<Canvas x:Name="canvas2" Width="100" Height="100" Background="Aquamarine" Grid.Column="1">
<Canvas.RenderTransform>
<TransformGroup>
<RotateTransform Angle="0" CenterX="0" CenterY="0"/>
</TransformGroup>
</Canvas.RenderTransform>
</Canvas>
</Grid>追问

啊?谢谢啊,我前段时间不在,今天刚回来,我想让CANVAS可以按自定义角度旋转?可以吗?

中间应该加些什么呢???我像在程序代码中控制旋转角度~

追答

里设置的初始角度。里设置的是动画中的旋转角度。你先运行下我给你的代码,看下你要的究竟是何种效果。

本回答被提问者采纳

C#创建wpf应用程序,如何不显示标题栏并使窗口全屏?

参考技术A 1,设置你的窗体的属性, 前端在xaml设置 或者后台代码里写 都可以
<window clr-namespace.....
....
WindowStyle="None" WindowState="Maximized">
这样启动就是全屏, 下方任务栏也会被挡住

2 如果想要“最大化”“还原”,需要自己画出button然后在事件里面写
this.WindowState = WindowState.Maxized; 或者Normal 即可实现本回答被提问者采纳

以上是关于C#的WPF程序,如何使Canvas有旋转效果的主要内容,如果未能解决你的问题,请参考以下文章

C#中利用WPF如何实现控件的旋转?以控件的中心旋转

如何实现WPF窗体旋转

C# 在 Canvas 中拖放图像

C# 耗时的程序 界面卡死,如何做一个缓冲界面,例如有个圆圈在旋转的效果展示

Canvas实现3D效果-可旋转的立方体

C# WPF 坦克大战