一、WPF介绍

  先说下WPF,她的简称是Windows Presentation Foundation,注意到Presentation这个单词了吧,展现的意思,后面那个是基础,展现基础,WPF是一种展现的基础框架。她运用Direct3d技术,而且实现了界面元素的外观和行为分离,这不是很流行的解耦思想嘛,呵呵,很先进的样子哟。值得一提的是WPF使用的布局语言是Xaml,布局有些类似网页布局,不错的布局方式,比winform布局方便很多。

  如果说winform还有这win32和mfc的影子,这次可以算是全新的表现形式了,以往的平台每个控件只能负责它自己的那片区域,但是WPF每个空间可以在屏幕的任何地方进行绘画,华丽的转身也可以做到,感觉用户体验倍升。有兴趣的可以下载个Microsoft Expression Design,专门用来设计非常酷的WPF界面,生成的是Xaml文件。

二、Hello World

  先不说别的,先来我们的传统,你懂得。。。

using System;
using System.Windows; namespace Zjh.SayHello
{
class SayHello
{
[STAThread]
public static void Main()
{
Window win = new Window();
win.Title = "Hello World!!";
win.Show(); Application app = new Application();
app.Run();
}
}
}

[STAThread]是单线程套间的意思,Application对象的Run方法是建立一个消息循环,如果你在项目属性中选择控制台启动,你就会明白。第一次看到下面这个类归属树,我很惊讶,很不错,很清晰有没有

对于这个Application对象,只有一个,执行了Run方法后,然后所做的事情就是响应各种事件,也就意味着如果要对
  如果你想获取窗口的实际尺寸,使用ActualWidth和ActualHeight这两个只读属性,记住窗口出现在屏幕上,这两个属性才会生效。当你设置宽和高的时候,设置的数值,记得是“逻辑像素”,简单来说的就是相对灵活的像素,会尽可能保证大小与设备无关。SystemParameters.PrimayScreenWidth和SystemParameters.PrimayScreenHeight的宽和高是系统桌面的数据,同样是“逻辑像素”。
  WPF看到颜色Color里面是有透明度的数据,可以控制控件的透明度,窗体的透明效果就是这个关键属性变来的。
  Brush画刷是WPF里面很重要的一点,Brush本身是一个抽象类,它的类层次图如下:

  只有Brush的子类实例才能设定window对象的Background property,在System.Window.Media命名空间里面。这里主要介绍SolidColorBrush类(单色画刷)和GradientBrush类(渐变画刷)。
  SolidColorBrush只能设置单一颜色,使用代码如下:

Color clr = Color.FromRgb(, , );
SolidColorBrush brush = new SolidColorBrush(clr);
Background = brush;

  

等待完善

Wpf再次学习,分享给入门的朋友的更多相关文章

  1. Opengl_入门学习分享和记录_02_渲染管线(一)顶点着色器&片段着色器

    写在前面的废话:今天俺又来了哈哈,真的好棒棒! 今天的内容:之前我们大概描述了,我们自己定义的顶点坐标是如何被加载到GPU之中,并且介绍了顶点缓冲对象VBO用于管理这一块内存.今天开始详细分析它的具体 ...

  2. Flink 从0到1学习—— 分享四本 Flink 国外的书和二十多篇 Paper 论文

    前言 之前也分享了不少自己的文章,但是对于 Flink 来说,还是有不少新入门的朋友,这里给大家分享点 Flink 相关的资料(国外数据 pdf 和流处理相关的 Paper),期望可以帮你更好的理解 ...

  3. ElasticSearch 5学习(7)——分布式集群学习分享2

    前面主要学习了ElasticSearch分布式集群的存储过程中集群.节点和分片的知识(ElasticSearch 5学习(6)--分布式集群学习分享1),下面主要分享应对故障的一些实践. 应对故障 前 ...

  4. ElasticSearch 5学习(6)——分布式集群学习分享1

    在使用中我们把文档存入ElasticSearch,但是如果能够了解ElasticSearch内部是如何存储的,将会对我们学习ElasticSearch有很清晰的认识.本文中的所使用的ElasticSe ...

  5. 从零开始学习jQuery (一) 入门篇

    本系列文章导航 从零开始学习jQuery (一) 入门篇 一.摘要 本系列文章将带您进入jQuery的精彩世界, 其中有很多作者具体的使用经验和解决方案,  即使你会使用jQuery也能在阅读中发现些 ...

  6. 腾讯QQ会员技术团队:人人都可以做深度学习应用:入门篇(下)

    四.经典入门demo:识别手写数字(MNIST) 常规的编程入门有"Hello world"程序,而深度学习的入门程序则是MNIST,一个识别28*28像素的图片中的手写数字的程序 ...

  7. WPF样式(Style)入门

    原文:WPF样式(Style)入门 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_34802416/article/details/78231 ...

  8. 前端学习 node 快速入门 系列 —— 初步认识 node

    其他章节请看: 前端学习 node 快速入门 系列 初步认识 node node 是什么 node(或者称node.js)是 javaScript(以下简称js) 运行时的一个环境.不是一门语言. 以 ...

  9. 前端学习 node 快速入门 系列 —— npm

    其他章节请看: 前端学习 node 快速入门 系列 npm npm 是什么 npm 是 node 的包管理器,绝大多数 javascript 相关的包都放在 npm 上. 所谓包,就是别人提供出来供他 ...

随机推荐

  1. Android自定义ScrollView实现一键置顶功能

    效果图如下: (ps:动态图有太大了,上传不了,就给大家口述一下要实现的功能吧) 要实现的功能:当ScrollView向上滑动超过一定距离后,就渐变的出现一个置顶的按钮,当滑动距离小于我们指定的距离时 ...

  2. 存储区更新、插入或删除语句影响到了意外的行数(0)。实体在加载后可能被修改或删除。刷新 ObjectStateManager 项。

    在用asp.net MVC3 的MusicStore时候 Edit某个数据项时提示下面的错误: 存储区更新.插入或删除语句影响到了意外的行数(0).实体在加载后可能被修改或删除.刷新 ObjectSt ...

  3. 查看linux的出错信息

    先执行:dmesg -c > /dev/null 该命令是把之前的一些信息删除,-c选项表示:Clear the ring buffer after first printing its con ...

  4. [sinatra] Sinatra再入门

    原文URL:http://www.rubycc.com/bbs/topic_detail/86 1.基础代码app.rb require 'rubygems' require 'sinatra/bas ...

  5. jquery 下拉菜单

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. Mysql 注意细节

    1.无法连接远程数据库,是因为远程服务器并没有开通权限,提供给其他机子连接: 在服务器机子 开通权限: 1)进去MySql 2)mysql>GRANT   ALL   PRIVILEGES    ...

  7. 《高质量C++/C编程指南》陷阱 【转】

    作者:幻の上帝 出处:http://hi.baidu.com/frankhb1989/item/185f0a14823dd1f8dceeca2c 此文硬伤不少,且相对谭XX的书而言隐晦许多,不建议新手 ...

  8. ASP.NET MVC5 新特性:Attribute路由使用详解 (转载)

    1.什么是Attribute路由?怎么样启用Attribute路由? 微软在 ASP.NET MVC5 中引入了一种新型路由:Attribute路由,顾名思义,Attribute路由是通过Attrib ...

  9. Sublime中增加格式化代码的快捷键

    [Preferences]->[Key Bindings]->[User]中,添加如下: { "keys": ["alt+shift+f"], &q ...

  10. android 学习随笔二十四(动画:帧动画)

    帧动画,一张张图片不断的切换,形成动画效果 * 在drawable目录下定义xml文件,子节点为animation-list,在这里定义要显示的图片和每张图片的显示时长 * FrameAnimatio ...