/avatar.png

WPF 动画速率效果

在 WPF 中使用动画的情况非常多,而要让动画变得生动往往要使用一些变速动画,WPF 也内置了很方便的缓动函数来实现这一功能。

除此之外,WPF 还有关键帧动画,利用关键帧动画能够很好的控制动画的细节,与美工的很多设计保持完美一致。关键帧动画中还有一套叫做样条关键帧动画(SplineKeyFrame),这个动画利用一个三次贝塞尔曲线能够更准确的控制动画的速率。

常用 Path 路径

  • 正三角形(左):<Path Data=“M40,0 L0,30 40,60 z” Stretch=“Uniform”/>
  • 正三角形(上):<Path Data=“M0,40 L30,0 60,40 z” Stretch=“Uniform”/>
  • 正三角形(右):<Path Data=“M0,0 L40,30 0,60 z” Stretch=“Uniform”/>
  • 正三角形(下):<Path Data=“M0,0 L30,40 60,0 z” Stretch=“Uniform”/>
  • 矩形:<Path Data=“M0,0 L1,0 L1,1 L0,1 z” Stretch=“Uniform”/>
  • 圆形:<Path Data=“M100,50 C100,77.614237 77.614237,100 50,100 C22.385763,100 0,77.614237 0,50 C0,22.385763 22.385763,0 50,0 C77.614237,0 100,22.385763 100,50 z” Stretch=“Uniform”/>
  • 箭头(左):<Path Data=“M40,0 L0,30 40,60” Stretch=“Uniform”/>
  • 箭头(上):<Path Data=“M0,40 L30,0 60,40” Stretch=“Uniform”/>
  • 箭头(右):<Path Data=“M0,0 L40,30 0,60” Stretch=“Uniform”/>
  • 箭头(下):<Path Data=“M0,0 L30,40 60,0” Stretch=“Uniform”/>

Stretch 默认使用 Uniform,在这种参数下矩形为正方形、圆形为正圆形,如果修改 StretchFill,则根据容器高宽进行自由拉伸。

C# 为何不推荐在构造函数中访问虚成员

https://cdn.jsdelivr.net/gh/fengrui358/img@main/282687-20170603231748899-1742988080.png
警告

如果在一个类中定义了虚属性或者虚方法,又在构造函数中访问了这个虚属性或方法,此时 VisualStudio 是不会给出警告,并且编译也没有问题,但是如果安装了 Resharper 插件则会给出警告提示:“在构造函数中访问了虚成员”,那么,这为何是一个安全隐患,下面给出一个例子说明:

NLog 配置详解

纵览

NLog 在启动时会自动的去加载配置,总的说来 NLog 的配置会来源于两个地方:

  1. 配置嵌入在标准的 *.exe.config 或者 web.config 文件。
  2. 存储在一个单独的配置文件中。

对于 Xamarin Android,支持将配置文件放在 assets 文件夹下。不过它不能自动加载,需要手动配置,如下: