• 大小: 20.25M
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2020-12-26
  • 语言: C#
  • 标签: wpf  示例  旋转  

资源简介

演示分割旋转、组件旋转方式。
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个文件信息

评论

共有 条评论