当前位置: 首页 > news >正文

WPF入门(一):简单的演示

最近一直很忙,接近年底,终于有点时间学习点新东西了。于是开始我的wpf之旅。 cheapter 1...

本文适合熟悉.net开发的程序员,对winform开发有一定了解。

先开始编码吧,理论的东西慢慢积累。先弄个能跑起来的东西来看看。

一 ,标准方式

打开vs,新建一个wpf应用程序。如下图:

查看引用列表:

  PresentationCore

  PresentationFramework

  WindowsBase

这几个是没见过的,从字面意思看,是核心,框架和窗体基本库。

文件列表:

  App.xaml 描述了application对象

     Windows1.xaml描述了一个 窗体对象

哈。很熟悉吧,还记得winform下常见的一条语句么?

    Application.Run(New Form1());

基本上还是如此吧。构建一个Application 管理对象和一个主窗体。只是,这里是用xaml语言描述的方式而已。

 按F5运行。简单的窗体就起来了。

下面我们换一种方式实现

二,自定义方式

打开vs,引用 PresentationCore ,  PresentationFramework,  WindowsBase 这三个dll

新建个class, Program.cs,添加个main方法(程序入口点)。如下:

 

     class  Program
    {
        [STAThread]
        
static   void  Main()
        {
            Application app 
=   new  Application();
            app.Run(
new  Window());
        }
    }

 

 

 按F5运行。是不是效果和上面的一样呢。

 

看起来,xaml语言描述了程序中个组件(对象)。这样使得我们的编码可以用xaml来描述。配合对应的解析器,将xaml描述的对象创建出来,并通过呈现器展示出来。这样带来的好处是显而易见的,标准的描述方式,可变动的解析器和呈现器,使得可以针对不同的运行平台(web,windows,移动设备)等可以针对性的实现不同的解析和呈现器。而各平台和现实屏幕尺寸差距等,真的能做到无缝跨平台么?不过这带来的是新的开发方式呢,使得各个平台的开发方式不至于差别那么大,类似windows开发平台的程序员可以很容易的快速过度到移动平台开发吧。

-----

最后附上代码 下载

相关文章:

  • winSockets编程(三)最简单的C/S形式
  • 在 DLL工程中加入新 CFormView时的 注意事项
  • 网络问题排查
  • 游戏中汉字显示的实现与技巧[ZZ]
  • 源码探探之StartActivity(一)
  • 《见与不见》
  • 旅行(LCA)
  • Linux正则表达式元字符
  • AMD首款APU的价值和机会
  • BMap:JavaScript API
  • Java注释讲解
  • Android前景,前途(转)
  • GPU的线程模型和内存模型
  • 深入浅出ShellExecute
  • 概率校准Probability Calibration
  • 【Leetcode】101. 对称二叉树
  • 【node学习】协程
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • github指令
  • js
  • Laravel 菜鸟晋级之路
  • mongo索引构建
  • ubuntu 下nginx安装 并支持https协议
  • Vim Clutch | 面向脚踏板编程……
  • WePY 在小程序性能调优上做出的探究
  • 官方解决所有 npm 全局安装权限问题
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 那些年我们用过的显示性能指标
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 《天龙八部3D》Unity技术方案揭秘
  • # 达梦数据库知识点
  • #单片机(TB6600驱动42步进电机)
  • (09)Hive——CTE 公共表达式
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (9)目标检测_SSD的原理
  • (arch)linux 转换文件编码格式
  • (ibm)Java 语言的 XPath API
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (力扣题库)跳跃游戏II(c++)
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (转)关于pipe()的详细解析
  • (转)视频码率,帧率和分辨率的联系与区别
  • .md即markdown文件的基本常用编写语法
  • .Net core 6.0 升8.0
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .NET Framework与.NET Framework SDK有什么不同?
  • .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary)
  • .net6Api后台+uniapp导出Excel
  • .netcore如何运行环境安装到Linux服务器
  • .NetCore项目nginx发布
  • .net打印*三角形