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

3、开发
1/ VS中文件-新建-项目-WPF应用程序
2/ 左上角工具箱中有很多组件可以直接拖拽使用
3/ 双击组件,进入脚本功能编辑界面,如按钮:
  1. private void Button_Click_1(object sender,EventArgs e)
  2. {
  3. MessageBox.Show("Wonderful!");
  4. }
4/ ctrl+F5 编译运行

5/ 总代码:
  1. <Window x:Class="鳄鱼啊鳄鱼.MainWindow"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. Title="MainWindow" Height="350" Width="525">
  5. <Grid>
  6. <Grid.Background>
  7. <LinearGradientBrush>
  8. <GradientStop Offset="0" Color="Blue"></GradientStop>
  9. <GradientStop Offset="0.5" Color="LightBlue"></GradientStop>
  10. </LinearGradientBrush>
  11. </Grid.Background>
  12. <TextBox Height="23" Margin="10,10,10,0" Name="textBox1" VerticalAlignment="Top" Text="{Binding ElementName=slider1, Path=Value, UpdateSourceTrigger=PropertyChanged}" TextChanged="textBox1_TextChanged" />
  13. <Slider Height="21" Margin="10,40,10,0" Name="slider1" VerticalAlignment="Top" Maximum="100" />
  14. <Button Content="Button" HorizontalAlignment="Left" Height="50" Margin="48,172,0,0" VerticalAlignment="Top" Width="138" Click="Button_Click"/>
  15. <Label Content="当前时间--" HorizontalAlignment="Left" Height="66" Margin="263,172,0,0" VerticalAlignment="Top" Width="204"/>
  16. <Button Content="Button1" HorizontalAlignment="Left" Height="52" Margin="48,258,0,0" VerticalAlignment="Top" Width="125" Click="Button_Click_1"/>
  17. <CheckBox Content="CheckBox" HorizontalAlignment="Left" Height="39" Margin="263,245,0,0" VerticalAlignment="Top" Width="109" Checked="CheckBox_Checked"/>
  18. <ComboBox HorizontalAlignment="Left" Margin="335,91,0,0" VerticalAlignment="Top" Width="120" SelectionChanged="ComboBox_SelectionChanged"/>
  19. </Grid>
  20. </Window>
前后都是一样的,套路;

效果:
来自为知笔记(Wiz)

转载于:https://www.cnblogs.com/caymanlu/p/5829446.html

VS生成桌面应用程序相关推荐

  1. nativefier - 把网页生成桌面应用程序

    使用前端技术开发桌面应用的技术已经相当成熟了, 如: NW.js. Electron 等,都可以轻松实现. nativefier 就是基于 Electron 封装的,只需要一行命令就可以生成不同平台的 ...

  2. 使用 Electron 构建桌面应用程序的介绍

    事实上的团队协作软件,Visual Studio Code - 在撰写本文时市场上最受欢迎的代码编辑器之一,以及WhatsApp的桌面版本都有一个共同点:它们都是用Electron构建的.js.随着这 ...

  3. 桌面应用程序 azure_如何开始使用Microsoft Azure-功能应用程序,HTTP触发器和事件队列...

    桌面应用程序 azure "Serverless" architecture is all the rage in tech land at the moment, includi ...

  4. 【教程】TestComplete测试桌面应用程序教程(四)

    TestComplete是一款具有人工智能的自动UI测试工具,利用自动化测试工具和人工智能支持的混合对象识别引擎,轻松检测和测试每个桌面,Web和移动应用程序.其中,TestComplete支持测试使 ...

  5. C#—使用InstallerProjects打包桌面应用程序

    前言 打包桌面应用程序实在是一个不常使用的东西,偶尔使用起来经常会忘东忘西的耽误时间,因此,这篇文章多以图片记录过程,也是用于备忘. 下载打包工具 C#打包桌面应用程序有很多种方法,这里介绍一种使用M ...

  6. 【译】探索更轻量的Electron替代品来托管Blazor桌面应用程序

    本文翻译自 ASP.NET 项目组的 Steve Sanderson 的博客,发表于 2019 年 11 月 1 日.Steve Sanderson 是 Blazor 最早的创造者.这篇文章发布后还有 ...

  7. 程序显示文本框_【教程】TestComplete测试桌面应用程序教程(二)

    TestComplete是一款具有人工智能的自动UI测试工具,利用自动化测试工具和人工智能支持的混合对象识别引擎,轻松检测和测试每个桌面,Web和移动应用程序.其中,TestComplete支持测试使 ...

  8. chromium 桌面_如何使用Chromium和PyInstaller将Web应用程序转换为桌面应用程序

    chromium 桌面 Packaging and distributing your app sounds simple in principle. It's just software. But ...

  9. 连接Python 3和Electron/Node.JS:构建现代桌面应用程序

    目录 先决条件 第1步--设置开发环境 安装Node.js和NPM 设置Python虚拟环境 创建虚拟环境 第4步--创建Node.js应用程序 如何在Electron和Python之间进行通讯 什么 ...

最新文章

  1. K - 老鼠走迷宫(DFS)
  2. Scrapy 框架入门
  3. react日期格式化实例
  4. Bigpipe---FaceBook使用的页面加载技术
  5. hibernate 别名_Hibernate:在sqlRestriction上使用联接表别名
  6. x=a%pq与x=a%p,x=a%q的关系(pq互质)
  7. 链表和顺序表的一些区别
  8. 期货市场技术分析05_交易量和持仓兴趣
  9. vue 第七天(循环遍历)
  10. 最好用AI抠图的软件,方便你,我,他。
  11. 浙江大学计算机考研2020,浙江大学计算机考研经验分享
  12. win7安装ubuntu18.04双系统
  13. 尤雨溪:Vue Function-based API RFC
  14. 中国涂料工业协会:世界十大涂料品牌2011年度报告
  15. 考研最卷的专业,我们替你查到了!
  16. 【持续更新中······】 各种模板+神奇黑科技
  17. Invalid header signature; read 0x3C0A0D0A0DBFBBEF, expected 0xE11AB1A1E011CFD0
  18. OrientDB 图状数据库示例
  19. 利用Python实现视频号自动赚钱一条龙
  20. 拼多多跨境电商Temu势起,国内商家跟还是不跟?

热门文章

  1. SDI、PDI、UART,I2C,SPI 接口总结
  2. 最新全套web前端开发VIP40g项目实战
  3. 宝塔 控制面板如何添加新网站
  4. 隔离电源与非隔离电源的选择及优缺点分析
  5. UNR 1 DAY 2 T1 Jakarta Skyscrapers
  6. java快速排序的时间复杂度_程序猿必备排序算法及其时间复杂度分析
  7. 【ArcGIS Pro二次开发】(17):打开GDB、SHP、CAD等各种数据
  8. 一文了解雷军,用互联网模式做实体经济的得与失
  9. AD16原理图导出PCB报错Footprint not found
  10. 还在PS里手动描边?AI自动抠图只需5秒