Windows 8使用XAML和C#构建自定义控件

根据  http://www.ithov.com/article/120784.shtml   进行总结供自己以后复习   ,请原作者见谅

原文出自【风信网】,转载请保留原文链接:http://www.ithov.com/article/120784.shtml

 

 

 

1  构建控件 zs:从 Windows.UI.XAML.Controls.Control 派生的类。

2 选择 Templated Control 项目   汉语翻译 是  模块化控件 

    public sealed class zs : Control
    {
        public zs()
        {
            this.DefaultStyleKey = typeof(zs);
        }
    }

 上面包含两个信息  

  a   自定义控件继承自  control                                                     

  b  设置 DefaultStyleKey,就是向 XAML 平台指出,此类使用一个隐式样式。模板化控件模板还添加了一个名为 Themes 的文件夹,在该文件夹中,创建一个名为 Generic.xaml 的新文件。在项目模板中有更多关于此模板的信息。    也就是说  自定义控件的样式 是在generic.xaml中定义的

 

 

 

3  转至您的 MainPage.xaml 文件,然后添加下一个标记。您必须包括 “local:” 标志,以便令 XAML 知道在哪个命名空间中查找 zs 类。“local:” 标志是在该 XAML 文件的顶部定义。

 

4  定义控件选项
 当我们添加可配置的选项时,控件就变得更加有用,并且可重用。
 要添加此选项,我们为该控件添加一个依赖项属性 (DP)。
快捷添加以来属性           “propdp”,然后按 Tab 键两次。您可以遍历代码段中的每个参数来填写规范。
 

  DependencyProperty.Register

("MyProperty",              //绑定变量名

typeof(int),             //变量类型

typeof(zs),        变量所在类 的类型

new PropertyMetadata(0));      默认值 以及  事件    ,当前默认没空      

不为空的情况  

 new PropertyMetadata(               false,       new PropertyChangedCallback(OnBlinkChanged)   //当   Myproperty的值改变的时候     就会触发  该事件
 private static void OnBlinkChanged(        DependencyObject d,        DependencyPropertyChangedEventArgs e    )  

  {        var instance = d as HelloWorld;}

 

 

 

 

5  为事件添加支持

a  在自定义控件内部   添加事件  并且在适当的位置调用
    public event EventHandler Blinked;   

private void OnBlinked()  

  {        EventHandler eh = Blinked;        if (eh != null)       

{            eh(this, new EventArgs());        }    }

b   然后在调用控件    的页面 

HelloWorldWithEvents.Blinked += (object sender, EventArgs args) =>{    System.Diagnostics.Debug.WriteLine("HelloWorldWithEvents Blinked");};
  


 


 

 

 

 

 


 

 

 

 

 

 

 

posted on 2012-11-12 12:34  Top@Gragon  阅读(262)  评论(0编辑  收藏  举报

导航