using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows;using System.Windows.Controls;using System.Windows.Ink;using System.Windows.Input;using System.Windows.Input.StylusPlugIns;using System.Windows.Media;using System.Windows.Media.Imaging;namespace A._1{ public class InkVideo : DynamicRenderer { public InkVideoStroke InkStroke { private set; get; } private Point prevPoint; private MediaPlayer media=new MediaPlayer(); public void CreateNewStroke(InkCanvasStrokeCollectedEventArgs e) { InkStroke = new InkVideoStroke(this, e.Stroke.StylusPoints); } protected override void OnStylusDown(RawStylusInput rawStylusInput) { prevPoint = (Point)rawStylusInput.GetStylusPoints().First(); base.OnStylusDown(rawStylusInput); } protected override void OnStylusMove(RawStylusInput rawStylusInput) { StylusPointCollection stylusPoints = rawStylusInput.GetStylusPoints(); this.Reset(Stylus.CurrentStylusDevice, stylusPoints); base.OnStylusMove(rawStylusInput); } public Point Draw(Point first,MediaPlayer mp, DrawingContext dc, StylusPointCollection points) { // MainWindow main = new MainWindow(); // videoName=this.Name; // if (videoName != null) //{ mp.Open(new Uri(MainWindow.videoName, UriKind.Relative)); //} Point pt = (Point)points.Last(); Vector v = Point.Subtract(pt, first); if (v.Length > 4) { Rect rect = new Rect(first, v); mp.Play(); dc.DrawVideo(mp, rect); } return first; } protected override void OnDraw(DrawingContext drawingContext, StylusPointCollection stylusPoints, Geometry geometry, Brush fillBrush) { prevPoint = Draw(prevPoint,media,drawingContext, stylusPoints); //base.OnDraw(drawingContext, stylusPoints, geometry, fillBrush); } } public class InkVideoStroke : Stroke { MediaPlayer mp ; InkVideo ink; public InkVideoStroke(InkVideo ink, StylusPointCollection stylusPoints) : base(stylusPoints) { this.ink = ink; mp = new MediaPlayer(); this.DrawingAttributes.Color = Colors.Transparent; } protected override void DrawCore(DrawingContext drawingContext, DrawingAttributes drawingAttributes) { base.DrawCore(drawingContext, drawingAttributes); Point pt = (Point)StylusPoints.First(); ink.Draw(pt, mp,drawingContext, StylusPoints); } } }
下载c# 视频动态绘制 例子源码下载用户还喜欢
- 18480 文章数
- 500万+ 热度
作者专栏
编辑推荐
- 淡抹u2引擎,修复内容较多,物有所值
- 界域传说·经典巨作=传世单机(一键安装)
- 丸子版本(175个传世版本大集合)
- GS版本:神话公益服务端+客户端
- 图片放大工具(放大图片不模糊)
- 剪映无限制VIP版
- 传奇世界客户端下载器,史上最全传世客户端
- 传世GS20220920商业引擎注册+登录配置器 解压密码是1
- U2官方排行榜游戏网关 支持元神,支持传家宝
- GS开战传世客户端+服务端
- (淡漠夕阳)u2引擎合区工具
- 传世GS引擎消除“你的游戏客户端版本号过旧,请及时更新”提示
- 传世一机多区双线路配置器--免密码版本
- 传世凤凰登陆器劫持修复软件
- SQLite3 for Navicat
- 传奇世界npc对话框编辑工具
- 传世GS落霞铭文服务器端
- gs_20210409引擎包+注册机(无限制)
- 传奇世界NPC对话封包查看器[支持时长版和极速版]
- 彩虹引擎传世脚本编辑工具1.7版来了,支持函数脚本翻译
评论