canvas教程

WPF入门教程系列十三(2)

字号+ 作者:H5之家 来源:H5之家 2018-07-17 17:49 我要评论( )

定义附加属性的方法与定义依赖属性的方法一致,前面我们是使用DependencyProperty.Register来注册一个依赖属性,只是在注册属性时使用的是RegisterAttach()方法。这个RegisterAttached的参数和 Register是完全一致

  定义附加属性的方法与定义依赖属性的方法一致,前面我们是使用DependencyProperty.Register来注册一个依赖属性,只是在注册属性时使用的是RegisterAttach()方法。这个RegisterAttached的参数和 Register是完全一致的,那么Attached(附加)这个概念又从何而来呢?

  其实我们使用依赖属性,一直在Attached(附加)。我们注册(构造)一个依赖属性,然后在DependencyObject中通过 GetValue和SetValue来操作这个依赖属性,也就是把这个依赖属性通过这样的方法关联到了这个DependencyObject上,只不过是 通过封装CLR属性来达到的。那么RegisterAttached又是怎样的呢?

下面我们来看一个最简单的应用:首先我们注册(构造)一个附加属性

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Media; namespace WpfApp1.Services { public class TurnoverManager : DependencyObject { GetAngle(DependencyObject obj) { return (double)obj.GetValue(AngleProperty); } SetAngle(DependencyObject obj, double value) { obj.SetValue(AngleProperty, value); } DependencyProperty AngleProperty = DependencyProperty.RegisterAttached(, typeof(double), typeof(TurnoverManager), new PropertyMetadata(0.0, OnAngleChanged)); OnAngleChanged(DependencyObject obj, DependencyPropertyChangedEventArgs e) { var element = obj as UIElement; if (element != null) { element.RenderTransformOrigin = new Point(0.5, 0.5); element.RenderTransform = new RotateTransform((double)e.NewValue); } } } }

 

然后,我们在程序中使用这个我们自己定义的附加属性

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:WpfApp1.Services" Title Canvas.Top Canvas.Top

在XAML中就可以使用刚才注册(构造)的附加属性了:如下图。

通过调整角度值,显示不同的效果如下两图。图1,图2。

 

                               图1

 

                          图2

 

  

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 10h搞定canvas基础系列(canvas零基础入门教程)

    10h搞定canvas基础系列(canvas零基础入门教程)

    2018-03-29 10:10

  • VAIO 被索尼抛弃后的最新品:“怪兽系列”

    VAIO 被索尼抛弃后的最新品:“怪兽系列”

    2018-03-12 14:00

  • Canvas触摸事件“独有”的touches,你需要了解的!(框架细节十

    Canvas触摸事件“独有”的touches,你需要了解的!(框架细节十

    2018-03-10 13:03

  • 黑马程序员Android就业面试技巧系列-技术篇 (视频播放)

    黑马程序员Android就业面试技巧系列-技术篇 (视频播放)

    2018-03-07 14:28

网友点评