• 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");};
      


     


     


     

  • 相关阅读:
    分享一个详情页
    ES6初探,变量的声明
    ES6初探,什么是ES6
    提问回顾
    个人阅读&个人总结
    结对项目-数独程序扩展
    个人作业Week3-案例分析
    个人作业Week2-代码复审
    个人作业1
    【个人项目】数独
  • 原文地址:https://www.cnblogs.com/zey23/p/2766071.html
Copyright © 2020-2023  润新知