WPF学习01:初始XAML浅析
本文内容: 浅析WPF应用默认创建的XAML中元素、attributes。
新建WPF工程“HelloWPF”.
初始创建的主窗体XAML代码如下:
<Window x:Class="HelloWPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid> </Grid>
</Window>
初始代码元素部分:
Window:同HTML,XML一样,XAML也有顶层元素。与HTML不同的是,XAML顶层元素有三个可选项,分别是:Window,Page(用于导航应用中,典型:WINDOWS PLAYER),Application。
很典型的Application就是同样WPF工程中默认创建的,App.xaml。用于定义整个应用用到的资源,并进行一些初始化操作。\
通过Application的StartupUri,我们指定了应用的启动窗口。
修改App.xaml.cs代码如下:
public partial class App : Application
{
public App()
{ }
}
Debug,分别在App与MainWindow的构造函数中加入断点,即能发现App将首先被调用。现在把App.xaml删掉,是会出问题的,所以,如果强迫症发作。。。百度相关方法就好了。
Grid:是WPF 的一种Layout Control,WPF提供了多个Layout Control:StackPanel、WrapPanel、Canvas。。。相比传统的桌面程序开发仅仅提供了绝对定位的原生支持,多种布局方式给了我们更多发挥的余地。
初始代码Attributes部分:
Xmlns:默认两个URL其实并不是引发一个HTTP请求,申请相关的库文件。而是由一个特定URL到多个CLR命名空间,之所以要用这种一对多的映射是:不这样做XMAL的可读性将会很大的降低。
我们可以把XAML改成这样:
<NameSpace1:Window NameSpace2:Class="HelloWPF.MainWindow"
xmlns:NameSpace1="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:NameSpace2="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="" Width="">
<NameSpace1:Grid> </NameSpace1:Grid>
</NameSpace1:Window>
结论如下:
1.xmlns:XXX XXX是XAML中对相关命名空间的别名。
2.接1,当XXX为空时,即为XAML默认命名空间。
当我们希望在XAML中引入其它的命名空间需要怎么做呢,如图,创建了一个C# DLL 工程“Utility”,在HelloWPF中对其添加了引用。
在WPF中引用该命名空间只需要:
xmlns="clr-namespace:Utility;assembly=Utility"
Class:借助partial关键字,我们可以在多个地方同时编辑同一个类,比如说我们可以写出这样的代码:
public partial class MainWindow : Window
{
public int Key { get; set; }
} public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Key = ;
}
}
通过指定class,WPF初始创建的MainWindow.xaml 与 MainWindow.xaml.cs即能很好共同编辑MainWindow啦。
Title:程序的标题
Height, Width: 顾名思义。。。
WPF系列学习心得正式开写。。。。。。。
WPF学习01:初始XAML浅析的更多相关文章
- WPF学习笔记1——XAML之1
参考文献: http://msdn.microsoft.com/zh-cn/library/ms752059(v=vs.110).aspx <Pro WPF 4.5 in C# > 一.X ...
- WPF学习笔记——认识XAML
Extensible Application Markup Language,XAML是一种声明性标记语言. 一.XAML语法概述 1,与XML类似,用尖括号标记元素 <StackPanel&g ...
- WPF学习笔记2——XAML之2
三.事件处理程序与代码隐藏 例如,为一个Page添加一个Button控件,并为该Button添加事件名称Button_Click: <Page xmlns="http://schema ...
- WPF学习一:XAML的资源(Resources)结构
一个初学者,把知识做个积累,如果有不对的地方,还请高手指出,谢谢! 先看一段代码:(下面是以Window WPF进行讲解,如果是Web 的话就把<Window改为<Page 而如果是 Us ...
- WPF学习笔记 - 在XAML里绑定
Binding除了默认构造函数外,还有一个可以传入Path的构造函数,下面两种方式实现的功能是一样的. <TextBlock x:Name="currentFolder" D ...
- WPF学习笔记-用Expression Design制作矢量图然后导出为XAML
WPF学习笔记-用Expression Design制作矢量图然后导出为XAML 第一次用Windows live writer写东西,感觉不错,哈哈~~ 1.在白纸上完全凭感觉,想象来画图难度很大, ...
- WPF学习之路(二) XAML
在WPF中引入了XAML语言,主要用于界面设计,业务逻辑则使用C#实现后台代码,将界面设计与业务逻辑分离 XAML是一种声明式语言,类似XML\HTML 示例: <!--Start Tag--& ...
- WPF学习(2)XAML
XAML(eXtensible Application Markup Language,可扩展应用程序标记语言)是一种声明式的编程语言,遵循XML的语法.WPF使用XAML来设计UI具有易用性.高效性 ...
- WPF学习(6)路由事件
做过.net开发的朋友对于事件应该都不陌生.追溯历史,事件(Event)首先应用在Com和VB上,它是对在MFC中使用的烦琐的消息机制的一个封装,然后.net又继承了这种事件驱动机制,这种事件也叫.n ...
随机推荐
- 【Android 界面效果36】Fragment管理
要管理fragment们,需使用FragmentManager,要获取它,需在activity中调用方法getFragmentManager(). 你可以用FragmentManager来做以上事情: ...
- 【Android 界面效果12】EditText中的多行输入问题
------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 我们在使用EditText进行多行输入的时候,通常的写法如下: <EditText android ...
- UVA 113 Power of Cryptography (数学)
Power of Cryptography Background Current work in cryptography involves (among other things) large p ...
- Service Discovery with Apache Curator
Curator的介绍 Curator就是Zookeeper的一个客户端工具(不知道Zookeeper的同学可以到http://www.ibm.com/developerworks/cn/opensou ...
- hdu-5703 Desert(水题)
题目链接: Desert Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Pr ...
- WebStorm10下载、安装
WebStorm是最专业的前端IDE开发工具 官网下载:http://www.jetbrains.com/webstorm/ 配置和快捷键
- java上传组件FileUpload
如果表单中有文件要上传,也就是有<input type="file" name="name"/> 就需要在form标签中添加enctype=&quo ...
- asp.net中用正则表达式验证数据格式
这是一个验证是否为数字的例子: Regex reg = new Regex(@"^[0-9]+\.{0,1}[0-9]*$");reg.IsMatch(textBox1.T ...
- [转载]mysql插入大量数据
mysql的批量数据格式, 比如 INSERT INTO TABLES (LABLE1,LABLE2,LABLE3,...) VALUES(NUM11,NUM12,NUM13,...), (NUM ...
- 【转载】使用SQL Server维护计划实现数据库定时自动备份
在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库.而备份数据库一般又是在凌晨时间基本没有数据库操作的时候进行,所以我们不可能要求管理员 每天守到晚上1点去备份数据库.要实现数据库的 ...