位置转化

        private void DrawScale()
{
double majorTickUnitValue = this.ScaleSweepLenth / this.MajorDivisionsCount;
double minorTickUnitValue = this.ScaleSweepLenth / this.MinorDivisionsCount;
double correctionOffset = this.rootGrid.Width / ; Double minvalue = MinValue; ; //画主刻度
for (int i = ; i < this.MajorDivisionsCount; i++)
{
Rectangle majorTickRect = new Rectangle();
majorTickRect.Height = this.MajorTickSize.Height;
majorTickRect.Width = this.MajorTickSize.Width;
majorTickRect.Fill = new SolidColorBrush(this.MajorTickColor); TransformGroup majorTickTransformGroup = new TransformGroup();
TranslateTransform majorTickTranslateTransform = new TranslateTransform(); majorTickTranslateTransform.X = i * majorTickUnitValue - correctionOffset;
majorTickTranslateTransform.Y = this.MajorMinorDivisionOffset; majorTickTransformGroup.Children.Add(majorTickTranslateTransform);
majorTickRect.RenderTransform = majorTickTransformGroup; this.rootGrid.Children.Add(majorTickRect);
} }

动画

        private void MovePointerUsingAnimate(double oldValue, double newValue)
{
if (null != this.pointer)
{
double distanceOldAndNew = Math.Abs(newValue - oldValue);
DoubleAnimation doubleAnimation = new DoubleAnimation();
double animDuration = 0.0f;
Storyboard movingPointerStoryboard = new Storyboard();
TransformGroup transformGroup = new TransformGroup();
TranslateTransform transform = new TranslateTransform(); doubleAnimation.From = oldValue;
doubleAnimation.To = newValue;
animDuration = distanceOldAndNew * animatingSpeedFactor;
doubleAnimation.Duration = new Duration(TimeSpan.FromMilliseconds(animDuration)); movingPointerStoryboard.Completed +=new EventHandler(MovingPointerStoryboardStoryboard_Completed);
movingPointerStoryboard.Children.Add(doubleAnimation);
Storyboard.SetTarget(doubleAnimation, this.pointer); transformGroup.Children.Add(transform);
this.pointer.RenderTransform = transformGroup; Storyboard.SetTargetProperty(doubleAnimation,
new PropertyPath("(Path.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.X)")); if (Math.Abs(oldValue - newValue) > )
{
movingPointerStoryboard.Begin();
} }
}

WPF 位置转化和动画的更多相关文章

  1. WPF 3D 平移模型+动画(桥梁检测系统)

    原文:WPF 3D 平移模型+动画(桥梁检测系统) 关于WPF 3D,网上有很多旋转的例子,但是关于平移的例子并不是太多.本文并非WPF 3D扫盲篇,因此需要对WPF 3D有一定了解,至少知道View ...

  2. WPF加载等待动画

    原文:WPF加载等待动画 原文地址:https://www.codeproject.com/Articles/57984/WPF-Loading-Wait-Adorner 界面遮罩 <UserC ...

  3. 【WPF】两则动画效果

    原文:[WPF]两则动画效果 引言 利用WPF的动画可以轻而易举的实现各种各样的特效,如擦除,滑动进入等,先看两个效果图 第一个效果 这个动画其实利用了OpacityMask和LinearGradie ...

  4. WPF 加载等待动画

    原文:WPF 加载等待动画 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_29844879/article/details/80216587 ...

  5. WPF实现射线效果动画

    原文:WPF实现射线效果动画 最近的一个项目中有个需求是:从一个点向其它多个点发出射线,要求这些射线同时发出,同时到达. 我就想到了用WPF的动画来实现.WPF中有Line类用于绘制直线,但这个类中好 ...

  6. WPF特效-鱼游动动画3

    原文:WPF特效-鱼游动动画3 WPF不支持骨骼,故使用3DMax导出了序列模型文件(.mtl;.obj). 方法1: 使用Blend 2013打开所有obj文件,拖动排列一下即可在usercontr ...

  7. WPF特效-鱼游动动画

    原文:WPF特效-鱼游动动画   实现思路:           通过VisualBrush Binding方式获取鱼局部图像,在Viewport3D中创建ModelVisual3D块并把获取到的局部 ...

  8. WPF特效-鱼游动动画2

    原文:WPF特效-鱼游动动画2           纯代码撸动画实践2:           原图:(png格式)                                            ...

  9. WPF 精修篇 路径动画

    原文:WPF 精修篇 路径动画 路径动画 是让一个对象围绕指定Path 的运动路径 进行移动的动画 举栗子 路径动画 使用 Blend 来设置 是十分简单的 首先用工具 笔  点出一条线 新建一个圆形 ...

随机推荐

  1. js,css 和 html 分离,见仁见智

    信经常观察大站的朋友都会发现,他们都把CSS写在HMTL页面里,一个页面的或者多个页面的背景图片,都集成到一张图片里,他们有的JS文件,也写到页面里了……也许你会迷惑,现在到处讲页面的优化,不都是要把 ...

  2. 设置win7任务栏显示标题,而不显示缩略图

    win7系统的任务栏可以显示桌面缩略图,这是非常好的一个功能,但是有时候我们希望只显示标题,如下所示 怎样设置呢?只要在桌面上的计算机图标上面“右键”,选择“属性”,在弹出的窗口选择“高级系统设置”, ...

  3. iOS预处理指令

    预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器.可见预处理过程先于编译器对源代码进行处理. 预处理指令是以#开头的代码行,#后是指令关键字,在关键字和#号之间允许存在任意个数的空 ...

  4. 改变UITextField placeHolder 字体 颜色

    [_textSearchField setValue:[UIColor redColor] forKeyPath:@"_placeholderLabel.textColor"]; ...

  5. IOS TextField设置大全

    //初始化textfield并设置位置及大小  //设置边框样式,只有设置了才会显示边框样式     text.borderStyle = UITextBorderStyleRoundedRect; ...

  6. PDA库位商品出库适配算法

    功能描述 代码实现 算法需求 回到顶部 功能描述   在PDA上面,通过扫描订单号,查询该商品的款号,尺码,订单数:同时适配仓库库位商品[SKU],显示该商品所在库位,库存数量,适配数. 因为PDA界 ...

  7. SpringMVC接收多个对象

    问题背景: 要在一个表单里同时一次性提交多名乘客的个人信息到SpringMVC,前端HTML和SpringMVC Controller里该如何处理? 第1种方法:将Json对象序列化成Json字符串提 ...

  8. CSS笔记---文字两边对齐

    <style> .box{ width: 1000px; height: 500px; background-color: #aa0000; margin:0 auto; } .teste ...

  9. Contest1065 - 第四届“图灵杯”NEUQ-ACM程序设计竞赛(个人赛)H吃薯条

    题目描述 薯片这次又遇到问题了== 薯片有n个薯条棒,第i个薯条棒的长度为i,由于薯片能瞬间移动,所以薯片能在1秒内从这n个薯条棒里面选择一个或者多个,吃掉同样长的一部分, 并且被吃掉部分的长度是正整 ...

  10. Libcurl笔记二

    一: multi与easy接口的不同处The multi interface offers several abilities that the easy interface doesn't. The ...