某些理论知识 WPF 笔记整理
以前没有了解过的编译器参数
/t:exe ConsolleApplication 控制台程序
/t:winexe GuiApplication 图形程序
/t:Library DynamicLinkLibrary 动态链接库
xaml派生于xml
在初建的WPF的项目中会自动生成4个分支:
Proeperties: 资源和配置
References: 需要引用的项目
App.xaml: 程序主体(生命了程序的进程是谁,制定程序的主窗体)
Window1.xaml: 程序主窗口
Attribute | Property |
编程语言文法层面 区分,用法 |
面对对象理论范畴 针对对象而言,性状 |
xaml中有一个对象就声明了一个对象.
关于 名称空间
xmlns: XML-Namespace
语法 xmlns:["可选映射前缀"]="名称空间";
页面自动生成的两条引用是xaml解析器的一个硬性编码(hard - coding),只要见到这些固定的字符串,就会把系列必要的程序集(assembly)和程序集中的包含的.net名称空间引用进来.
Demo:
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:c="clr-namespece:System.Windows.Controls;assmbly=PresentationFramework"
上方第一条引用,对应一些与xaml语法和编译相关的clr名称空间.使用空间类型时加X前缀.因为映射到了x.
第二条引用中,C是映射前缀,换成任意的字符都行. 如果此程序中要使用到Control中的一些控件,例如Button,则需要这样写:
<c:Button></c:Button>
App.xaml
在App.xaml中有一个Attribute:
StartUri="Window1.xaml"
表示程序从Windows1.xaml这个窗体启动.
只要window1.xaml能被正确的解析为一个窗体,程序就能执行.所以删掉
x:Class="MyFirstWpfAlllication".
不会有影响.
删掉InitializeComponent()中的调用,更改x:class = "MyFirstWpfApplication.window1"程序仍然可以运行.
因为x:class这个Attribute的作用是当xaml解析器将包含它的标签解析成C#类后.这个类名是什么.
partial
这个关键字可以将一个类分拆多处定义,所以在xaml中声明了的类,后置也声明是不会发生冲突的.