WPF学习笔记1

概念:WPF,Windows Presentation Foundation也,译过来就是“Windows呈现基础”

在我们正式剖析代码之前,让我们牢记两件事:
1. 这个世界是一个“组合”的世界——汽车是由一个车身和四个轮子组合成的;飞机是由机翅和机身组合成的。这些组成部分,我们称之为元素(Element)。
2. 在XAML文件里,每写一个元素就相当于定义了一个元素所对应的.NET Framework类的实例。

属性对象(元素)是父元素所固有的,子元素则可由设计人员来进行增减
属性对象(元素)是隶属于父类的(从父类继承而来),子元素是在设计派生类时新添加进来的

见到元素就相当于创建实例

xaml代码:
<Window x:Class="HelloWPF.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>

</Grid>
</Window>

这个x是一个名称空间、一个使用XML语法声明的名称空间

xmlns就是XML Namespace的简写,意思是要声明一个名称空间。

在XAML中,想使用某个名称空间里的类就要使用“名称空间+冒号+类名”的格式,所以:x:Class的意思是使用x名称空间里名为Class的类。

当xmlns后面没有跟随名称空间的名字时,就相当于省去了名称空间的名字,当使用这个名称空间中的类时就无需再加前缀
BTW:默认名称空间只能有一个。

“数据驱动界面”:数据是底层、是心脏,数据变了作为表层的UI就会跟着变、将数据展现给用户;如果用户修改了UI元素上的值,相当于透过UI元素直接修改了底层的数据;数据处于核心地位,UI处于从属地位。

Data Binding也就不应该再叫“数据绑定”了,应该称为“数据关联”,意思是说,在数据和界面(或其他数据)之间具有某些关系和联动。

Data Binding的几个关键概念了:

1.数据源(Data Source,简称Source):顾名思义,它是保有数据的实体、是数据的来源、源头。把谁当作数据源完全由程序员来决定——只要你想把它当做数据核心来使用。它可以是一个UI元素、某个类的实例,也可以是一个集合(关于对集合的绑定,非常重要,专门用一篇文章来讨论之)。

2.路径(Path):数据源作为一个实体可能保有着很多数据,你具体关注它的哪个数值呢?这个数值就是Path。就上面的例子而言,slider1是Source,它拥有很多数据——除了Value之外,还有Width、Height等,但都不是我们所关心的——所以,我们把Path设为Value。

3.目标(Target):数据将传送到哪里去?这就是数据的目标了。上面这个例子中,textBox1是数据的Target。有一点需要格外注意:Target一定是数据的接收者、被驱动者,但它不一定是数据的显示者——也许它只是数据联动中的一环——后面我们给出了例子。

4.关联(Binding):数据源与目标之间的通道。正是这个通道,使Source与Target之间关联了起来、使数据能够(直接或间接地)驱动界面!

5.设定关联(Set Binding):为Target指定Binding,并将Binding指向Target的一个属性,完成数据的“端对端”传输。

时间: 2024-08-19 04:52:28

WPF学习笔记1的相关文章

WPF学习笔记4&mdash;&mdash;Layout之2

下面简单介绍常见的面板. 一.Grid 1.Grid关于调整行列距离有三种方法:绝对大小,自动大小,比例大小.如下: <ColumnDefinition Width="100"></ColumnDefinition> <ColumnDefinition Width="Auto"></ColumnDefinition> <ColumnDefinition Width="*"></Co

WPF学习笔记2&mdash;&mdash;XAML之2

三.事件处理程序与代码隐藏 例如,为一个Page添加一个Button控件,并为该Button添加事件名称Button_Click: <Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="ExampleNamespace.ExampleP

WPF学习笔记系列之一 (布局详情)

布局:StackPanel  栈布局:控件不会拐弯且多出的不再显示.DockPanel   停靠布局 吸在上边下边或左右.WrapPanel    环绕布局   一行控件会拐弯Canvas  进行基于坐标的布局 Grid中若不指定Grid.Row属性及Grid.Column则默认为:0行,0列.RowDefinitions ColumnDefinitions ShowGridLines=true <ColumnDefinition Width="100"></Colu

【WPF学习笔记】之 System.Exception 对象名 &#39;XXXX&#39; 无效。

我在运行vs时候发现项目报错,如下图: 报Exception错误,对象名"XXXXXX"无效. 经过调查得知,因为连接数据库的库名写错了,如下: 对应正确数据库的库名: 把库名改正确,问题就解决了. [WPF学习笔记]之 System.Exception 对象名 'XXXX' 无效.

WPF学习笔记(XAML)

引言 这是我来院子里第一次写文章,由于工作一年半做了一些项目,但是真的感觉会的东西太少,而且基础笔记差,最近想学习一些东西,多写些文章,激励自己坚持学习下去. 由于准备用WPF做一个项目,驱动要先学习一下XAML的知识,XAML同时可以应用于WEB应用,移动应用的开发,所以有学习的价值. 概要. 下面开始进入主题,来写一下这几天XAML学习的东西. 概要 XAML(Extensible Application Markup Language),可拓展应用程序标记语言,是一种声明式语言,目的使UI

WPF学习笔记(二)----Events, Commands

1.配置事件和事件处理(Configuring Events and Event Handling) 事件在WPF编程是明显不同于那些在传统的Windows窗体的编程.WPF使用路由事件,可以存在多个控制和多个处理程序.路由事件允许您添加多个层次的复杂性和复杂的用户界面,响应用户输入.学习路由事件,包括如何处理一个路由事件,定义和注册一个新的路由事件,处理应用程序生命周期事件,并使用EventManager类. 1.1 下面使用一个实例说明如何定义.注册.封装路由事件 public abstra

【WPF学习笔记三】空WPF项目元素详解

我们在VisualStudio2010创建了一个空WPF程序,现在我们来对这个空WPF程序的所有元素进行讲解! 1.<Window x:Class="WpfApplication1.MainWindow" 2.        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3.        xmlns:x="http://schemas.microsoft.com/

WPF学习笔记-用Expression Blend制作自定义按钮

1.从Blend工具箱中添加一个Button,按住shift,将尺寸调整为125*125; 2.右键点击此按钮,选择Edit control parts(template)>Edit a copy... 3.在弹出的Create style resource对话框中,修改新按钮样式的名称 4.在左侧的Object and timeline面板中选中ContentPresenter元素,按Ctrl+X将此标记临时保存到内存中 5.选中Chrome,按Delete键删除 6.选中Template,在

WPF学习笔记(3)——style

http://www.cnblogs.com/Zhouyongh/archive/2011/08/01/2123610.html Style 用来在类型的不同实例之间共享属性.资源和事件处理程序,您可以将 Style 看作是将一组属性值应用到多个元素的捷径. 这是MSDN上对Style的描述,翻译的还算中规中矩.Style(样式),简单来说,就是一种对属性值的批处理,类似于Html的CSS,可以快速的设置一系列属性值到UI元素. 示例 一个最简单的Style的例子: 1: <Window> 2