摘要: WPF数据绑定为应用程序提供了一种表示数据和与数据交互的简单而又一致的方法。元素能够以公共语言运行库 (CLR) 对象和 XML 的形式绑定到各种数据源中的数据。一、数据绑定的基本概念:数据绑定涉及到两个方面:一个是绑定源,再一个是绑定目标。绑定源即控件绑定所使用的源数据,绑定目标即数据显示的控件。1、对于绑定源,在WPF可以是以下四种:CLR对象:可以绑定到CLR类的公开的属性、子属性、索引器上ADO.Net对象:例如DataTable、DataView等XML文件:使用XPath进行解析DependencyObject:绑定到其依赖项属性上,即控件绑定控件2、对于绑定目标,必须是WPF中的 阅读全文
posted @ 2012-06-07 11:11 风吹裤裆JJ凉 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 对于数据绑定,绑定的数据源的值类型和绑定目标的依赖属性的值类型可能会不同,系统提供了一些默认的绑定类型转换,另外也可以由用户自定义这种绑定转换:一、定义CLR类型定义一个CLR类型,内部存在两个属性字符串类型的ColorString和Color对象类型的ColorObject,供应用程序界面调用: 1: using System.ComponentModel; 2: using System.Windows.Media; 3: 4: namespace BasicWPFDataBinding 5: { 6: public class MyBindingCol... 阅读全文
posted @ 2012-06-07 11:11 风吹裤裆JJ凉 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 一、WPF样式类似于Web应用程序中的CSS,在WPF中可以为控件定义统一的样式(Style)。样式属于资源的一种,例如为Button定义统一的背景颜色和字体: 1: <Window.Resources> 2: <Style 3: TargetType="Button"> 4: <Setter Property="Background" Value="Yellow" /> 5: <Setter Property="Margin" Value="5" /& 阅读全文
posted @ 2012-06-07 11:10 风吹裤裆JJ凉 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 如果要做到一个应用程序其基本的内容不变,但改变整个应用程序的外观可以这样做:对于每一套外观定义一个ResourceDictionary在应用程序中,动态加载此应用程序(或窗体)的Resource例如,如下的应用程序,在选择不同的用户时,显示不同的Canvas背景及图片:主题样式A:主题样式B:主题样式C:主题样式A的ResourceDictionary的XAML文件内容: 1: <ResourceDictionary 2: xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3: xm.. 阅读全文
posted @ 2012-06-07 11:10 风吹裤裆JJ凉 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 一、什么是资源通常使用 WPF 资源作为重用通常定义的对象和值的简单方法。例如定义一种可以复用的单色的Brush对象,按钮的背景及矩形的填充颜色均使用此Brush: 1: <Window x:Class="WPFResource.WinBasicResource" 2: xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3: xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4: Titl 阅读全文
posted @ 2012-06-07 11:09 风吹裤裆JJ凉 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 四、静态资源(StaticResource)和动态资源(DynamicResource)资源可以作为静态资源或动态资源进行引用。这是通过使用 StaticResource 标记扩展或 DynamicResource 标记扩展完成的。通常来说,不需要在运行时更改的资源使用静态资源;而需要在运行时更改的资源使用动态资源。动态资源需要使用的系统开销大于静态资源的系统开销。例如以下的例子: 1: <Window x:Class="WPFResource.StaticAndDynamicResource" 2: xmlns="http://schemas.micros 阅读全文
posted @ 2012-06-07 11:09 风吹裤裆JJ凉 阅读(277) 评论(0) 推荐(0) 编辑
摘要: WPF中的命令路由与事件路由是两个很让初学者头痛的概念,对于命令路由可以理解为,系统(WPF)定义了一系列的操作,在应用程序中可以直接使用。例如,定义一系列菜单,执行对窗体中文本框的复制、剪切、粘贴操作,简单地可以这样做: 1: <Grid> 2: <Grid.RowDefinitions> 3: <RowDefinition Height="23" /> 4: <RowDefinition /> 5: </Grid.RowDefinitions> 6: <Menu Grid.Row="0" 阅读全文
posted @ 2012-06-07 11:08 风吹裤裆JJ凉 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 一、依赖项属性(Dependency Property)Windows Presentation Foundation (WPF) 提供了一组服务,这些服务可用于扩展公共语言运行时 (CLR) 属性的功能。这些服务通常统称为 WPF 属性系统。由 WPF 属性系统支持的属性称为依赖项属性。本概述介绍 WPF 属性系统以及依赖项属性的功能,这包括如何在可扩展应用程序标记语言 (XAML) 中和代码中使用现有的依赖项属性。依赖项属性的用途在于提供一种方法来基于其他输入的值计算属性值。这些其他输入可以包括系统属性(如主题和用户首选项)、实时属性确定机制(如数据绑定和动画/演示图板)、重用模板(如资源 阅读全文
posted @ 2012-06-07 11:07 风吹裤裆JJ凉 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 一、键盘类和键盘事件WPF提供了基础的键盘类(System.Input.Keyboard类),该类提供与键盘相关的事件、方法和属性,这些事件、方法和属性提供有关键盘状态的信息。Keyboard的事件也通过UIElement等XAML基元素类的事件向外提供。对于键盘操作,其常用的事件有两组:KeyDown事件和PreviewKeyDown事件:处理键盘键按下KeyUp事件和PreviewKeyUp事件:处理键盘键抬起其中KeyDown和KeyUp事件属于冒泡路由事件,而PreviewKeyDown和PreviewKeyup属于隧道路由事件。为了使元素能够接收键盘输入,该元素必须可获得焦点。默认情 阅读全文
posted @ 2012-06-07 11:07 风吹裤裆JJ凉 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 由于园子里昨天使用Live Writer上传出现问题,昨天只能使用Web上的文本编辑器上传本文,造成代码、内容等格式的错误,现重发本文。一、Panel内容模型Panel内容模型指从System.Windows.Controls.Panel继承的控件,这些控件都是容器,可以在内部承载其他的控件和子容器。Panel内容模型包含的容器有:CanvasDockPanelGridTabPanelToolBarOverflowPanelUniformGridStackPanelToolBarPanelVirtualizingPanelVirtualizingStackPanelWrapPanel对于Pan 阅读全文
posted @ 2012-06-07 11:06 风吹裤裆JJ凉 阅读(192) 评论(0) 推荐(0) 编辑