WPF x名称空间详解

   x实际上就是xaml的首字母,x名称空间里面的成员,比如x:Class、x:Name....是用来引导xaml编译器把xaml代码变异成CLR代码,实际上这些个名称,就是专门给xaml编译器看的;

  与C#语言一样,xaml也有自己的编译器,xaml语言会被解析并编译,最终形成微软中间语言存储在程序集中。在解析和编译xaml语言过程中,我们经常需要告诉编译器一些重要的信息,比如xaml代码的编译结果应该与那个C#代码的编译结果合并、使用xaml声明的元素是public还是private访问级等等。这些让程序员能够与xaml编译器沟通的工具就存在x名称空间中。

一、在xaml中出现的形式有三种:

1.标记扩展:x:Array、x:Null、x:static、x:Type;

2.xaml指令元素:x:XData、x:Code;

3.Attribute:x:Class、x:ClassModifier、x:Name、x:FieldModifier、x:Key、x:Shared、x:SubClass、x:Type、x:TypeArguments、x:Uid;

二、详解

1.x:Class、x:ClassModifier一对,前者命名空间、后者改该命名空间下改xaml文件的访问级别,默认为public,如果修改internal,必须同步修改.cs文件的访问级别,强调一下,.cs文件必须是partial关键字修饰;

2.x:Name、x:FieldModifier一对,x:FieldModifier默认为internal,如果改为public,就可以跨程序及访问空间,前提是给控件取好名字,并保证不能重复名称;

3.x:Null,给xaml中需要赋值null的属性赋值为null,不如style=“{x:Null}”

posted @ 2019-07-14 16:39  <--青青子衿-->  阅读(215)  评论(0编辑  收藏  举报
// /**/ // 在页脚Html代码 引入 // function btn_donateClick() { var DivPopup = document.getElementById('Div_popup'); var DivMasklayer = document.getElementById('div_masklayer'); DivMasklayer.style.display = 'block'; DivPopup.style.display = 'block'; var h = Div_popup.clientHeight; with (Div_popup.style) { marginTop = -h / 2 + 'px'; } } function MasklayerClick() { var masklayer = document.getElementById('div_masklayer'); var divImg = document.getElementById("Div_popup"); masklayer.style.display = "none"; divImg.style.display = "none"; } setTimeout( function () { document.getElementById('div_masklayer').onclick = MasklayerClick; document.getElementById('btn_donate').onclick = btn_donateClick; var a_gzw = document.getElementById("guanzhuwo"); a_gzw.href = "javascript:void(0);"; $("#guanzhuwo").attr("onclick","follow('33513f9f-ba13-e011-ac81-842b2b196315');"); }, 900);