摘要:
本节主要介绍一下Application类的部分功能,我们首先来看一下如何使用Application类来加载一个窗口:我们首先创建一个控制台程序,并引入相关的dll,然后修改Main()方法。 [STAThread] private static void Main() { var app = new Application(); var win = new Window1(); app.Run(win); //另一种方法创建一个主窗口并显示 //var app = new Application(); ... 阅读全文
摘要:
首先我们必须知道在WPF中,控件通常被描述为和用户交互的元素,也就是能够接收焦点并响应键盘、鼠标输入的元素。我们可以把控件想象成一个容器,容器里装的东西就是它的内容。控件的内容可以是数据,也可以是控件。控件的内容也是内存中的对象。控件通过自己的某个属性引用着作为内容的对象,这个属性称为Content Property(内容属性)。当然这个内容属性具体到每种控件上都有自己的名字和类型:有的是object类型的Content,有的是object的Child;有些控件的内容是实现了集合接口的Items、Children等。我们常见的控件,大致可以分为如下几类:·内容控件·带有标题 阅读全文
摘要:
我们首先来了解一下图形化用户界面(Graphic User Interface)也就是我们常常听到的GUI。举个简单的例子,同样是数据,我们可以用控制台程序加格式控制符等输出,但是这些都不如GUI来的友好和方便。WPF相对于其它只能使用编程语言进行UI设计,具有专门用于UI设计的XAML,并且能够确保界面布局能恰倒好处的适应不同的窗口尺寸。我们来查看Window和Page的源码,发现Window的间接基类ContentControl和Page类都使用了一个object类型的Content属性。所以它只能包含一个元素,但是我们想放置多个元素怎么办呢?这个时候我们就需要使用布局容器。为什么布局容器 阅读全文
摘要:
这一节我们来简单介绍一下XAML的加载和编译,它包括如下三种方式:· 只使用代码·使用代码和未编译的XAML·使用代码和编译过的BAML一. 只使用代码我们首先创建一个简单的控制台应用程序。然后我们添加PresentationFramework.dll、PresentationCore.dll、WindowsBase.dll和System.Xaml.dll。然后,我们创建一个Window1.cs类文件: public class Window1 : Window { private Button _button; public Window1() ... 阅读全文
摘要:
通过对前面2节对XAML的介绍,我们对XAML有了一定的认识。这一节我们来简单了解一下部分XAML命名空间(x:)语言功能。x命名空间映射的是http://schemas.microsoft.com/winfx/2006/xaml,它包含的类与解析XAML语言相关。与C#语言一样,XAML也有自己的编译器。XAML文档会被解析并编译,最终形成IL存储在程序集中。在解析和编译XAML的过程中,我们需要告诉编译器一些信息,比如XAML代码编译结果与那个C#代码的编译结果合并等。这些能让我们与XAML编译器沟通的工具就放在x名称空间中。通过x命名空间在XAML中出现的形式,我们可以分为如下几类: 阅读全文
摘要:
通过上一节我们已经对XAML有了一定的了解,这一节我们来系统的学习一下XAML。一. 简单属性与类型转换器,属性元素:我们已经知道 XAML是一种声明性的语言,并且XAML解析器会为每个标签创建一个与之对应的对象。光有对象是没有任何意义的,需要对属性之类的赋值才有使用意义。所以就要求XAML为对象属性赋值。XAML中为对象属性赋值共有2种语法:· 使用字符串进行简单赋值·使用属性元素进行复杂赋值XAML为了使上面的设置起作用,System.Windows.Controls.TextBox类必须提供上面面这些属性。上面的设置中,有2个属性为枚举类型(VerticalAlign 阅读全文
摘要:
XAML的全称是Extensible Application Markup Language,就是我们所说的可扩展应用程序标记语言。XAML可以应用到许多不同领域,但主要用于构建用户界面。XAML是一种单纯的声明型语言,也就是说,它只能用于声明一些UI元素、绘制UI和动画等;不能在其中加入程序逻辑,从根本上实现了UI和逻辑代码分离。XAML是一种由XML派生而来的语言,所以很多XML种的概念在XAML是通用的。我们通过Visual Studio创建一个WPF应用程序,来介绍一下XAML的命名空间以及一些基本要素:(至于怎么通过Visual Studio创建WPF Application这里就不 阅读全文
摘要:
WPF 全称是:Windows Presentation Foundation,直译为Windows表示基础。WPF是专门为GUI(Graphic User Interface)程序开发设计的。在过去很多年,用于GUI开发的技术一直都在改进。不管是Windows Form,还是Visual Basic 6等等,在底层都是使用Windows的 User32,GDI/GDI+ 这2个部分来构建用户界面。而WPF中,底层的图形技术不再是GDI/GDI+ ,而是DirectX。不管是用WPF绘制简单的文本框、按钮,还是到复杂的3D图形效果,都是采用DirectX完成的。如果要保证在WPF中获得硬件加速 阅读全文
摘要:
public class ServiceHost : ServiceHost { public void EnableMetadataExchange(bool enableHttpGet = true) { if (State == CommunicationState.Opened) { throw new InvalidOperationException("Host is already opened"); } var metada... 阅读全文
摘要:
首先,我们要知道的是String类型是一个引用类型,它的基类是Object。并且它的内容是只读的。我们有时候经常会看到两个字符串类型,一个是“Sting”,一个是“string”。大写的String是System.String,也就是 公共语言规范(Common Language Specification) CLS 所定义的字符串类型;小写的string则是C#自己的字符串类型;最终C#编译器还是会把它和System.String联系起来。例如:string a = "a";a = "abc";我们来简单分析下这两段代码:1.第一段代码,首先会在托管堆 阅读全文