WPF简介:VS创建桌面应用程序
1、简介
1/ 什么是WPF
WPF,Windows Presentation Foundation也,译过来就是“Windows呈现基础”,你看它的目的非常明确,就是用来把数据“显示”给用户看的(说白了就是用来做UI的)。如果只是给用户显示几串文本、两三张图片或者几个表格那WPF就太糗了,幸乎,WPF可不是这等素食动物——大家都见过Flash动画吧,WPF的显示能力丝毫不亚于Flash以及Flash的同门师弟Flex+AIR(某建筑公司产品)。
2/ 为什么会有WPF
“微软出点儿什么新东西,我就得跟着跑!”我也曾这样抱怨过。不过,当大量的工作任务压在头上的时候,我终于感觉到——每一次技术(包括理念、架构、语言、工具)的更新都带来了巨大的工作效率提升。的确,我们需要花些时间来搞懂那些看起来乱糟糟的新概念,但搞明白之后——坦白地讲,在有人带的情况下,这并不是什么难事——我们就能用非常少的代码来换取先前技术大量代码才能获得的功能。似乎代码量是开发团队中一切糟糕问题的罪魁祸首,so,明白了?
对于WPF是如何减少代码量的,后面有一个例子。但WPF绝不是一个只能帮我们减少代码量的家伙,更重要的是,它还能帮我们把程序的界面和功能逻辑近乎彻底地剥离——in a nutshell,把你的程序变成一只香蕉或者橘子——“皮”是可以从“瓤”上剥下来的,一旦某天用户说:“这个橘子能不能看起来像是个香蕉?”你就可以为你的橘子瓣儿裹上漂亮的进口香蕉皮再开出一个更漂亮的价码。
3/ WPF是怎样做到的
使用WPF技术开发产品,程序的“皮”,也就是UI,是使用XAML语言来“画”出来的;而程序的“瓤”,也就是功能逻辑,可以由程序员来选择使用C#/VB.NET/C++.NET等托管语言来实现。
对于程序员们来说,C#/VB.NET/C++什么的已经是耳熟能详。XAML是什么呢?简言之,XAML(读音为“zamel”,近似于“咋没有”)是XML语言的一个衍生物,它的语法基本上与XML语言完全一致;它的功能就是专门用来设计和实现程序的UI;它看起来和HTML语言非常像,无论你是程序员还是美工人员,只要你设计过网页,那学习XAML对你来说都是小菜一碟儿。而且,XAML可不像HTML和XHTML那样只能呆在Web开发领域——XAML对于Web开发和桌面开发是“通吃”的,从Web程序改成桌面程序或者反过来,所付出的工作量惊人的小,而且由于UI与逻辑完全分离,逻辑代码几乎不用改动——这意味着两种开发的边界渐渐消失,两类设计人员和程序员将会染指“彼岸”、拿到更多的项目、挣更多的钱。
WPF之前,无论是Win32 API编程、使用MFC编程还是Windows Form编程,美工(设计人员)设计出来的界面都需要由程序员使用Visual Studio来实现。程序员不是美工,VS也干不过PS……越俎代庖永远是高效分工的大敌。如今,为了支持WPF程序设计,微软推出了专门的、使用XAML语言进行UI设计工具——Expression Studio,使用它就像使用PhotoShop和Dreamweaver一样,设计出来的结果保存为XAML文件,程序员可以直接拿来用;当UI有变更时,程序员只消用新版XAML文件替换旧版即可。
--From http://liutiemeng.blog.51cto.com/120361/91631/
2、基础
1/ 选择“菜单—》文件—》新建—》项目”。如下图

2/ 在“新建项目”对话框中选择“WPF应用程序”,修改名称为WpfApp1,然后点击“确定”按钮,便成功创建了一个“WPF应用程序”。新创建的项目所引用的公共类库如下。如下图。(“WPF应用程序”会在“引用”里面自动添加下图中所示的 PresentationCore、PresentationFramework、WindowsBase三大核心程序集)。

3/ WpfApp1项目的生成的文件结构。如下图

4/ 在App.xaml中的“StartupUri”属性可以指定项目运行时的启动窗体。如下图中“StartupUri=”MainWindow.xaml””,还可以定义我们需要的系统资源以及引入程序集等。如下图。

->>已经更新为

5/ 在MainWindow.xaml的设计窗体中我们可以修改Title。还可以设置MainWindow的属性和添加事件。完成了这些设置以后,我们就可以对窗体添加内容了,如下图。我在这个窗体中添加了一个ListView、两个WrapPanel、两个Button等。

6/ 在WPF的xmal文件中还可以添加如下资源。如下图。

--From http://www.cnblogs.com/chillsrc/p/4464023.html
WPF简介:VS创建桌面应用程序的更多相关文章
- nodejs+chromium 创建桌面应用程序
直接用nodejs+javascript+html+css也可以创建桌面应用程序啦,前端开发的同学应该都比较感兴趣. 生成的应用程序自带nodejs环境和chrome浏览器环境. github的ato ...
- WPF使用Mutex创建单实例程序失效
vs2019 1.引入名称空间 using System.Threading; using System.Runtime.InteropServices; 2.导入dll并声明方法 [DllImpor ...
- C#入门---2、C#装备知识(C#创建桌面程序的时候创建的是什么应用程序)
C#入门---2.C#装备知识(C#创建桌面程序的时候创建的是什么应用程序) 一.总结 一句话总结: WPF应用程序:来替代 WindowsFroms 来创建桌面应用程序 1.什么是控制台程序 Con ...
- 演练:我的第一个 WPF 桌面应用程序 https://docs.microsoft.com/zh-cn/dotnet/framework/wpf/getting-started/walkthrough-my-first-wpf-desktop-application
这篇文章演示如何开发简单的 Windows Presentation Foundation (WPF) 应用程序包括元素所共有的大多数 WPF 应用程序: 可扩展应用程序标记语言 (XAML) 标记. ...
- 用node-webkit(NW.js)创建桌面程序
以往写windows桌面程序需要用MFC.C#之类的技术,那么如果你只会web开发技术呢?或者说你有一个网站,但是你想把你的网站打包成一个桌面应用程序,该如何做呢? 答案就是用node-webkit这 ...
- WPF 创建桌面快捷方式
#region 创建桌面快捷方式 string deskTop = System.Environment.GetFolderPath(System.Environment.SpecialFolder. ...
- android 为应用程序创建桌面快捷方式技巧分享
手机装的软件过多,找起来很不方便,所以在主页面有一个快捷方式的话会很不错的,本文将介绍如何实现,需要了解跟多的朋友可以参考下 我们开发一款软件后,如果手机装的软件过多,去翻的话会很难翻的,所以 ...
- Delphi -- 创建 桌面、发送到...、快速启动栏、开始菜单、程序菜单、右键菜 单
{================================================================= 功 能: 创建 桌面.发送到....快速启动栏.开始菜单.程序菜单 ...
- wpf 全局异常捕捉+错误日志记录+自动创建桌面图标
/// /// 创建桌面图标 /// public static void CreateShortcutOnDesktop(string LnkName) { String shortcutPath ...
随机推荐
- 使用Python开发SQLite代理服务器(转载)
转载:https://mp.weixin.qq.com/s?timestamp=1498531736&src=3&ver=1&signature=Eq6DPvkuGJi*G5s ...
- Java笔记5:单例模式
一.应用杨景 在计算机系统中,线程池.缓存.日志对象.对话框.打印机.显卡的驱动程序对象常被设计成单例.这些应用都或多或少具有资源管理器的功能.每台计算机可以有若干个打印机,但只能有一个Printer ...
- 为InfiniBand而哭泣
自古就不乏还没有開始就结束的那种精彩.我称之为殉道者.InfiniBand就是当中之中的一个.尽管它有陨落之势,我依旧要为它鼓掌. 假设说以太网旨在将主机联系在一起,那么InfiniBand的初衷就是 ...
- kinect脸部三维数据特征点标签语义具体说明
非常多零零碎碎的事情,导致非常久没写blog了.face animation的demo做完了也快一个月了.是时候总结总结了. Kinect获得的标识点共用121个.其给的sdk里面也给出了响应的标签. ...
- EXTJS4自学手册——简单图形(circle,rect,text,path)
一.画圆形: xtype: 'button', text: '画图一个圆', handler: function (btn) { Ext.create('Ext.window.Window', { l ...
- 【VBA编程】15.WorkSheet对象常用属性
[Cells属性] Cells属性用于返回一个Range对象,表示工作表中所有的单元格,包括已经使用的单元格和未使用的单元格. [代码区域] Sub 使用Cells属性() '声明变量 Dim wk ...
- jquery autoComplete的使用代码一则
$(function() { $("#vipCustomer").autocomplete({ source : function(request, response) { $.a ...
- unity, windows: Unhandled Exception: System.UnauthorizedAccessException: Access to the path "XXX\Temp\Assembly-CSharp.dll.mdb" is denied
的windows上使用unity,修改过脚本或inspector中的数值后运行编辑器报错: Unhandled Exception: System.UnauthorizedAccessExceptio ...
- 开源管理系统OSSIM设置 语言为中文简体
最近研究OSSIM系统,OSSIM的安装是做好的ISO,操作系统选择的是CentOS 64Bit系统.我使用的OSSIM 4.11 的ISO安装,虽然系统说明支持中文,实际上,只是台湾的繁体中文而以. ...
- Yum Error Another app is currently holding the yum lock; waiting for it to exit
Another app is currently holding the yum lock; waiting for it to exit... The other application is: P ...