基本信息
源码名称:WPF 图片旋转效果示例源码(非常炫)
源码大小:20.25M
文件格式:.rar
开发语言:C#
更新时间:2019-09-27
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
演示分割旋转、组件旋转方式。
1、分割旋转如需对组件窗体进行分割,可以将其转换为图像进行旋转,完毕后再显示组件窗体;
转为图像可修改如下代码:可以自行更改换为BitmapSource
private void SaveControlImage(FrameworkElement control, string filename)
{
Rect rect = VisualTreeHelper.GetDescendantBounds(control);
DrawingVisual dv = new DrawingVisual();
using (DrawingContext ctx = dv.RenderOpen())
{
VisualBrush brush = new VisualBrush(control);
ctx.DrawRectangle(brush, null, new Rect(rect.Size));
}
int width = (int)control.ActualWidth;
int height = (int)control.ActualHeight;
RenderTargetBitmap rtb = new RenderTargetBitmap(width, height, 96, 96, PixelFormats.Pbgra32);
rtb.Render(dv);
PngBitmapEncoder encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(rtb));
using (FileStream fs = new FileStream(filename,FileMode.Create, FileAccess.Write, FileShare.None))
{
encoder.Save(fs);
}
}
这里只演示图像。
2、组件旋转为整体旋转,可当做窗体,加入其它组件。旋转如果加入阴影(DropShadowEffect)动画将不流畅出现抖动,这里通过图像方式制作阴影(CustomShadow.cs),
未使用DropShadowEffect方式,动画较为流畅。
3、设置帧率:见App.xaml、App.cs文件
private void Application_Startup(object sender, StartupEventArgs e)
{
Timeline.DesiredFrameRateProperty.OverrideMetadata(
typeof(Timeline),
new FrameworkPropertyMetadata { DefaultValue = null }
);
}
可将null设置为60、90、100等。
画面流畅时看不出来,将null设置为5、10等较小值可见其作用。
演示分割旋转、组件旋转方式。
1、分割旋转如需对组件窗体进行分割,可以将其转换为图像进行旋转,完毕后再显示组件窗体;
转为图像可修改如下代码:可以自行更改换为BitmapSource
private void SaveControlImage(FrameworkElement control, string filename)
{
Rect rect = VisualTreeHelper.GetDescendantBounds(control);
DrawingVisual dv = new DrawingVisual();
using (DrawingContext ctx = dv.RenderOpen())
{
VisualBrush brush = new VisualBrush(control);
ctx.DrawRectangle(brush, null, new Rect(rect.Size));
}
int width = (int)control.ActualWidth;
int height = (int)control.ActualHeight;
RenderTargetBitmap rtb = new RenderTargetBitmap(width, height, 96, 96, PixelFormats.Pbgra32);
rtb.Render(dv);
PngBitmapEncoder encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(rtb));
using (FileStream fs = new FileStream(filename,FileMode.Create, FileAccess.Write, FileShare.None))
{
encoder.Save(fs);
}
}
这里只演示图像。
2、组件旋转为整体旋转,可当做窗体,加入其它组件。旋转如果加入阴影(DropShadowEffect)动画将不流畅出现抖动,这里通过图像方式制作阴影(CustomShadow.cs),
未使用DropShadowEffect方式,动画较为流畅。
3、设置帧率:见App.xaml、App.cs文件
private void Application_Startup(object sender, StartupEventArgs e)
{
Timeline.DesiredFrameRateProperty.OverrideMetadata(
typeof(Timeline),
new FrameworkPropertyMetadata { DefaultValue = null }
);
}
可将null设置为60、90、100等。
画面流畅时看不出来,将null设置为5、10等较小值可见其作用。
4、动画按照对象原始大小显示方法,代码里查看
viewport3D = new Viewport3D();