1、XAML語言是一種界面描述語言,用戶界面用XAML的元素或?qū)傩詠肀硎?,WPF引擎把XAML描述的UI元素解釋為相應(yīng)的.NET對象,從而在桌面程序上創(chuàng)建相應(yīng)的控件。
2、WPF編程模型是XAML標記語言和邏輯編程語言(C#)的混合,界面元素以及他們的相互關(guān)系是用XAML的節(jié)點、屬性以及相互關(guān)系來描述的。
3、XAML的根元素常見的主要有2個:Window(用于桌面應(yīng)用程序)、Page(Web應(yīng)用程序)。不常見的:FlowDocument、Application和Grid。
4、XAML中命名空間用xmlns屬性表示,并且一個XAML命名空間對應(yīng)一個或多個.NET命名空間(好處是在XAML中不必寫過多的命名空間)。常用的兩個命名空間是:http://schemas.microsoft.com/winfx/2006/xaml/prentation(默認命名空間)和http://schemas.microsoft.com/winfx/2006/xaml(特定功能--控制XAML編譯器),這兩個命名空間幾乎包含WPF中所有命名空間。
5、使用XmlnsDefinition特性將多個.NET命名空間合并到一個XAML命名空間:在AsmblyInfo.cs文件中
[asmbly:XmlnsDefinition("http://www.motyer.cn", "Moty.Utils")]
[asmbly:XmlnsDefinition("http://www.motyer.cn", "Moty.UI")]
【擴展】xmlns:x表示的含義:
xmlns:x和xmlns一樣,是申明一個命名空間,區(qū)別在于xmlns申明特定屬性的命名空間。比如下面的代碼
<Root xmlns="http://www.motyer.cn"
xmlns:blog="http://www.motyer.cn/blog"
Author="motyer"
CreateTime="2016/12/30"
blog:Count="256"
blog:CreateTime="2016/12/30">
……………………
</Root>
在上面的代碼里面,有2個屬性前面都帶有前綴blog,對于這類屬性的命名空間就是由xmlns:blog指出的,而另外不帶任何前綴的屬性的命名空間是由xmlns指出的。
6、如果要在XAML里面使用自定義的類和屬性,那么必須要先按如下方式引入命名空間:xmlns:custom="clr-namespace:Moty.Utlis.Codec",并且在使用時需要在屬性前面加上前綴custom。
7、WPF開發(fā)采用代碼分離(Code Behind)技術(shù),一個WPF應(yīng)用程序一般由2部分構(gòu)成:XAML描述UI、C#處理邏輯。
8、排版類元素可以包含多個子元素,內(nèi)容控件只能包含一個子元素(如:Window)。
9、相關(guān)屬性表示方法:
==> 第一種方法(簡潔、推薦)
<DockPanel Background="Red">...</DockPanel>
==> 第二種方法
<DockPanel>
<DockPanel.Background>Red</DockPanel.Background>
</DockPanel>
10、2類標記擴展:
①WPF標記擴展(StaticResource、DynamicResource、Binding、RelativeSource、TemplateBinding);
②XAML標記擴展(x:Type、x:Static、x:null、x:Array)
* x:Type:在XAML中取對象的類型,相當于C#里面的typeof;
* x:null:將目標屬性的值設(shè)為null;
* x:Array:在XAML里面創(chuàng)建一個數(shù)組
<x:ArrayExtension Type="{x:Type sys:Int32}"
x:Key="myArray">
<sys:Int32>1</sys:Int32>
<sys:Int32>2</sys:Int32>
<sys:Int32>3</sys:Int32>
</x:ArrayExtension>
* x:Static:把某個對象上的屬性或域的值賦給目標對象的相關(guān)屬性。
11、XAML使用{}表示擴展,例如:
<TextBlock Text="{Binding Source={StaticResource myDataSource}, Path=PersonName}"/>
該例使用了2個擴展,Binding、StaticResource,并且是嵌套擴展。
(猜想:可能有一個Binding類,初始化的時候需要給定Source和Path兩個屬性的值。)
12、自定義擴展:新建一個類,繼承MarkupExtension類,重寫ProvideValue方法。
本文發(fā)布于:2023-02-28 20:12:00,感謝您對本站的認可!
本文鏈接:http://www.newhan.cn/zhishi/a/167766239081476.html
版權(quán)聲明:本站內(nèi)容均來自互聯(lián)網(wǎng),僅供演示用,請勿用于商業(yè)和其他非法用途。如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時內(nèi)刪除。
本文word下載地址:assemblyinfo(assemblyinfo.cs丟失).doc
本文 PDF 下載地址:assemblyinfo(assemblyinfo.cs丟失).pdf
| 留言與評論(共有 0 條評論) |