资源简介
演示分割旋转、组件旋转方式。
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();
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Media.Animation;
namespace demo_E
{
///
/// App.xaml 的交互逻辑
///
public partial class App : Application
{
private void Application_Startup(object sender StartupEventArgs e)
{
Timeline.DesiredframeRateProperty.Overridemetadata(
typeof(Timeline)
new frameworkPropertymetadata { DefaultValue = null }
);
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
..A..H. 66048 2019-09-27 21:34 demo_G\.vs\demo_G\v16\.suo
文件 0 2019-09-27 19:50 demo_G\.vs\demo_G\v16\Server\sqlite3\db.lock
文件 720896 2019-09-27 21:34 demo_G\.vs\demo_G\v16\Server\sqlite3\storage.ide
文件 189 2019-09-27 19:50 demo_G\demo_G\App.config
文件 425 2019-09-27 19:51 demo_G\demo_G\App.xaml
文件 662 2019-09-27 19:51 demo_G\demo_G\App.xaml.cs
文件 1077248 2019-09-27 21:34 demo_G\demo_G\bin\Debug\demo_G.exe
文件 189 2019-09-27 19:50 demo_G\demo_G\bin\Debug\demo_G.exe.config
文件 71168 2019-09-27 21:34 demo_G\demo_G\bin\Debug\demo_G.pdb
文件 5231 2019-09-27 19:54 demo_G\demo_G\demo_G.csproj
文件 3421 2019-09-26 19:51 demo_G\demo_G\Effect\CustomShadow.cs
文件 1368 2019-09-26 20:30 demo_G\demo_G\Effect\effectHelper.cs
文件 75 2019-09-27 21:34 demo_G\demo_G\Effect\Rotary\Container.cs
文件 579 2019-09-22 09:37 demo_G\demo_G\Effect\Rotary\ContainerUtils.cs
文件 377 2019-09-26 11:03 demo_G\demo_G\Effect\Rotary\PlaneRotary.xaml
文件 7375 2019-09-26 20:53 demo_G\demo_G\Effect\Rotary\PlaneRotary.xaml.cs
文件 1056 2019-09-24 20:29 demo_G\demo_G\Effect\Rotary\RotaryElement.cs
文件 451 2019-09-24 20:25 demo_G\demo_G\Effect\Rotary\Rotate3DContainer.xaml
文件 11554 2019-09-24 20:28 demo_G\demo_G\Effect\Rotary\Rotate3DContainer.xaml.cs
文件 17145 2019-09-24 08:30 demo_G\demo_G\Images\shadow.png
文件 406047 2019-09-27 18:40 demo_G\demo_G\Images\za.png
文件 626012 2019-09-27 18:41 demo_G\demo_G\Images\zb.png
文件 695 2019-09-27 19:56 demo_G\demo_G\MainWindow.xaml
文件 3055 2019-09-27 20:21 demo_G\demo_G\MainWindow.xaml.cs
文件 2559 2019-09-27 21:34 demo_G\demo_G\obj\Debug\App.g.cs
文件 2559 2019-09-27 21:34 demo_G\demo_G\obj\Debug\App.g.i.cs
文件 42 2019-09-27 21:34 demo_G\demo_G\obj\Debug\demo_G.csproj.CoreCompileInputs.cache
文件 1018 2019-09-27 21:34 demo_G\demo_G\obj\Debug\demo_G.csproj.FileListAbsolute.txt
文件 954 2019-09-27 21:34 demo_G\demo_G\obj\Debug\demo_G.csproj.GenerateResource.cache
文件 1077248 2019-09-27 21:34 demo_G\demo_G\obj\Debug\demo_G.exe
............此处省略351个文件信息
相关资源
- 第二代Kinect WPF开发从入门到精通资料
- WPF21个优秀项目及源码
- SciChart控件破解方法见包内
- WPF开发框架
- C# EF6连接、操作Mysql教程和增删改查
- wpf特效轮播图
- WPF做的监控程序
- wpf 图片滑动效果
- Telerik_UI_for_WPF破解版
- Telerik_UI_for_WPF_2019_1_116_Dev.msi
- WPF编程宝典2012源码和书(全)
- 深入浅出WPF刘铁猛 重新整理书签 带源
- WPF程序设计指南完整PDF高清版
- Telerik UI for WPF 2018_1_116
- Opencvsharp
- 深入浅出WPF 重新整理目录,带源码
- Pro WPF 4.5 in C# Pro WPF系列第四版 英文书
- WPF学习书籍pdf《葵花宝典_WPF自学手册
- Telerik_UI_for_WPF_Documentation
- WPF编程宝典C#2012 第4版(包含源码)
- WPF编程宝典 第四版
- c# WPF 动态曲线显示
- WPF高级编程PDF
- C#VS2013与DirectX显示旋转的四棱锥
- WPF崩溃重启
- C#/WPF下的通用自动更新模块修正
- 基于WPF的USB设备浏览器
- WPF实现类似安卓,ISO的日期选择器
- WPF MVVM模式下 TreeView 右键菜单
- wpf入门第五篇 WPF with ECharts 项目源码
评论
共有 条评论