1.故事板的时间定义,之前一直没看懂 表示为时分秒 <DoubleAnimation Storyboard.TargetName="MyRectangle" Storyboard.TargetProperty="Width" From="100" To="200" Duration="0:0:1" /> Duration="0:0:1" 表示 时:分:秒
2.路径说明 <Path Data="M0 0 12 12M0 12 12 0" Stroke="White" StrokeThickness="1" VerticalAlignment="Center" HorizontalAlignment="Center"> Data 中M 为move 即移动到(0,0) 画线到(12,12) 在移动到(0,12) 画线(12,0) ,中间M为移动到,如果没有的话 会直接画线 以上为画一个X
3.代码片段 vs->工具->代码片段管理器 打开后 切换语言为Cshape,复制位置的路径,在资源管理器中打开。 创建代码片段即可。 本例:复制一个propfull 改名为propn 打开propn 修改文件里面的propfull->probn <Title>propn</Title> <Shortcut>propn</Shortcut> public $type$ $property$ { get { return $field$;} set { $field$ = value;this.DoNotify();} } $end$]]>
4.增加(CallerMemberNameAttribute/CallerFilePathAttribute/CallerLineNumberAttribute)这3个特性 这3个特性是.net 4.5中新增的,如果要在低版本中使用,需要增加,类 namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Parameter, Inherited = false)] public class CallerMemberNameAttribute : Attribute { } [AttributeUsage(AttributeTargets.Parameter, Inherited = false)] public class CallerFilePathAttribute : Attribute { } [AttributeUsage(AttributeTargets.Parameter, Inherited = false)] public class CallerLineNumberAttribute : Attribute { } } 在通知属性接口基类中,增加特性限定,可以自动识别属性名称,减少复制代码后忘记修改报错的尴尬。 public class NotifyBase : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; public void DoNotify([CallerMemberName] string propName="") { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propName)); } } public class UserInfo:NotifyBase { private int age; public int Age { get { return age; } set { age = value; this.DoNotify(); } } private string name; public string Name { get { return name; } set { name = value; this.DoNotify(); } } }