WPF:基础知识
WPF:1、数据驱动 2、UI定义与运行逻辑分离
一、
1、编译
/t:exe 命令行程序;/t:winexe 图形用户界面程序;/t:library 动态链接库
2、启动
1)编译后生成的App.g.cs中默认生成了main函数,并运行App类
/// <summary>
/// Application Entry Point.
/// </summary>
[System.STAThreadAttribute()]
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public static void Main() {
WpfChapter01.App app = new WpfChapter01.App();
app.Run();
}
2)App.xaml文件中StartupUri="MainWindow.xaml"语句是启动MainWindow窗体。因此,启动后呈现的界面是MainWindow界面(自定义)。
3)自定义main函数:右击解决方案内的App.xaml文件,选择Properties(属性),Build Action(生成操作) 从默认ApplicationDefinition改为Page。
自定义Main函数如下:
/// <summary>
/// App.xaml 的交互逻辑
/// </summary>
public partial class App : Application
{
[STAThread]
public static void Main()
{
WpfChapter01.App app = new WpfChapter01.App();
app.InitializeComponent();
app.Run();
}
}
3、解析Xaml文件(xaml是声明性语言,xaml编译器为每个标签创建一个与之对应的对象)
因为xaml文件被解析为x:class所赋值的类名,而这个类名默认情况下与其自身的xaml.cs同名,故xaml.cs中类名使用了patial关键词。
1)、x:Class是告诉窗口要编译成说明类,x:ClassModifier把类指定为怎么样的访问权限;编译器把x:Name编译成类的属性;x:FieldModified设置属性的访问级别;x:Key资源放到资源字典里,通过Key来检索; x:shared声明资源是否共享,一定要和x:key配合使用,当设置为 false 时,会修改 WPF 资源检索行为,以便特性化资源请求为每个请求创建一个新实例,而不是所有请求共享同一个实例。
2)、Xaml文档树形结构(协助操作类:VisualTreeHelper 、LogicalTreeHelper)
3)、Xaml中属性赋值:简单使用字符串(借助TypeConvert类、TypeConvertAttribute类派生类转换,重写ConvertFrom函数,并把TypeConvertAttribute[typeof(ChildTypeConvertClass)])放在目标类上面,即绑定到目标类上、复杂使用属性元素(属性嵌套、罗列)(this.属性名=)
WPF:基础知识的更多相关文章
- WPF基础知识、界面布局及控件Binding(转)
WPF是和WinForm对应的,而其核心是数据驱动事件,在开发中显示的是UI界面和逻辑关系相分离的一种开放语言.UI界面是在XAML语言环境下开发人员可以进行一些自主设计的前台界面,逻辑关系还是基于c ...
- WPF基础知识、界面布局及控件Binding
WPF是和WinForm对应的,而其核心是数据驱动事件,在开发中显示的是UI界面和逻辑关系相分离的一种开放语言.UI界面是在XAML语言环境下开发人员可以进行一些自主设计的前台界面,逻辑关系还是基于c ...
- [WPF 基础知识系列] —— 绑定中的数据校验Vaildation
前言: 只要是有表单存在,那么就有可能有对数据的校验需求.如:判断是否为整数.判断电子邮件格式等等. WPF采用一种全新的方式 - Binding,来实现前台显示与后台数据进行交互,当然数据校验方式也 ...
- WPF Step By Step -基础知识介绍
回顾 上一篇我们介绍了WPF基本的知识.并且介绍了WPF与winform传统的cs桌面应用编程模式上的变化,这篇,我们将会对WPF的一些基础的知识做一个简单的介绍,关于这些基础知识更深入的应用则在后续 ...
- wpf(第一章 基础知识)
wpf第一章基础知识:通过vs2015创建wpf程序会在引用里面多出3个核心程序集PresentationCore.PresentationFramework.WindowsBase.并且会在解决方案 ...
- .NET面试题系列[1] - .NET框架基础知识(1)
很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...
- WPF基础到企业应用系列6——布局全接触
本文转自:http://knightswarrior.blog.51cto.com/1792698/365351 一. 摘要 首先很高兴这个系列能得到大家的关注和支持,这段时间一直在研究Windows ...
- .NET Framework基础知识总结
之前给大家总结了java的面试几次技巧总结,同学们看了觉得还是不错,能够得到大家的认可,感觉还是挺不错的.现在又有同学来想小编索要.NET面试的总结了,好吧.谁让小编这么好呢!以下是.NET面试之框架 ...
- WCF入门教程:WCF基础知识问与答(转)
学习WCF已有近两年的时间,其间又翻译了Juval的大作<Programming WCF Services>,我仍然觉得WCF还有更多的内容值得探索与挖掘.学得越多,反而越发觉得自己所知太 ...
随机推荐
- linux中,常用的账号管理命令
创建新用户:adduser 用户名创建新用户并将其加入一个现有组中:adduser 用户名 -G 组名创建新用户并使其只属于该组:adduser 用户名 -g 组名创建用户密码:passwd 用户名创 ...
- vue 一些开发姿势
.vue : <template></template><script></script> .js :import Vue from 'vue'
- BizTalk开发系列(三) 单机环境下的BizTalk Server 2006 R2安装
大部分的开发环境都是在单机环境下进行的,今天整理了一下BizTalk Server 2006 R2在单机环境下的安装步骤. 1. 软件需求 在独立服务器中完整安装BizTalk Server 2006 ...
- poj2115-C Looooops(扩展欧几里德算法)
本题和poj1061青蛙问题同属一类,都运用到扩展欧几里德算法,可以参考poj1061,解题思路步骤基本都一样.一,题意: 对于for(i=A ; i!=B ;i+=C)循环语句,问在k位存储系统中循 ...
- linux 解压
.tar解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)-------------------------- ...
- 同时使用python2和Python3
问题:thrift生成的是python2代码,之前使用的是Python3因此需要同时使用两个版本. 方案:将python3的可执行文件重命名为python3(默认为Python),这样使用pyhton ...
- 使用paramiko模块远程登录并上传或下载文件
1.paramiko安装 1)安装PyCrypto2.6 for Python 2.7 64bit.地址:http://www.voidspace.org.uk/python/modules.shtm ...
- objective c实现配置文件+反射
1. 先写plist配置文件 plist写到resouce里面去 通过NSBundle把数据取plist读出来 2. 通过NSClassFromString创建类 NSClassFromString ...
- java netty之ServerBootstrap的启动
通过前面的几篇文章,对整个netty部分的架构已经运行原理都有了一定的了解,那么这篇文章来分析一个经常用到的类:ServerBootstrap,一般对于服务器端的编程它用到的都还算是比较的多..看一看 ...
- http-2.4.18 安装
编译最新的httpd 2.4.18 编译提示apr版本低于1.4 rpm repo源是1.39的 因此编译apr 下载 apr apr-util apr-iconv [root@ansibl ...