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) 编辑 收藏 举报