
WPF
文章平均质量分 77
xufei96
SDET .net C#
展开
-
深入浅出WPF 第二部分(16)
8.3.2 自定义路由事件using System;using System.Windows;namespace FirstWpfApplication.Events{ public class ReportTimeEventArgs : RoutedEventArgs { public ReportTimeEventArgs(RoutedEvent原创 2012-12-24 17:01:03 · 557 阅读 · 0 评论 -
应用程序管理概述
应用程序管理概述http://msdn.microsoft.com/zh-cn/library/ms743714.aspxApplication 元素必须包含 x:Class 特性。生成应用程序时,标记文件中如果存在 x:Class,则 MSBuild 将创建一个从Application 派生的partial 类,并且该类的名称由 x:Class 特性指原创 2013-09-24 15:54:17 · 768 阅读 · 0 评论 -
WPF Windows 概述
WPF Windows 概述http://msdn.microsoft.com/zh-cn/library/ms748948.aspx3个条件1. 在标记中,Window 元素必须包含 x:Class 特性。2. 在代码隐藏中,该类必须是 partial 类,其名称必须与标记中 x:Class 特性指定的名称相同,且必须派生自 Window。3. 在原创 2013-09-23 15:15:28 · 771 阅读 · 0 评论 -
深入浅出WPF 第二部分(13)
第7章 深入浅出话属性7.1 属性(Property)的来龙去脉程序的本质就是“数据+算法”。属性仅仅是语法糖衣(Syntax Sugar),一个get方法,一个set方法。7.2 依赖属性(Dependency Property)7.2.1 依赖属性对内存的使用方式WPF允许对象在被创建的时候并不包含用于存储数据的空间(即字段所占用的空间),只保留在需要用到数据时能够获原创 2012-12-24 11:45:04 · 414 阅读 · 0 评论 -
深入浅出WPF 第二部分(14)
7.3 附加属性(Attached Properties)附加属性是说一个属性本来不属于某个对象,但由于某种需求而被后来附加上。也就把对象放入一个特定环境后对象才具有的属性(表现出来就是被环境赋予的属性)就称为附加属性(Attached Properties)。Visual Studio用于创建依赖属性的snippet是propdp,用于创建附加属性的snippet是propa。usi原创 2012-12-24 12:20:15 · 435 阅读 · 0 评论 -
WPF路由事件
demo 1:using System.Windows;namespace WpfApplication10{ /// /// Interaction logic for MainWindow.xaml /// public partial class MainWindow : Window { public MainWindo原创 2013-06-07 17:29:13 · 846 阅读 · 0 评论 -
WPF 依赖属性与附加属性
DependencyProperty: IDE快捷键propdp using System.Windows;using System.Windows.Controls;using System.Windows.Data;namespace WpfApplication8{ public partial class MainWindow : Window原创 2013-06-06 17:49:10 · 874 阅读 · 0 评论 -
WPF所有绑定实例
RTusing System;using System.ComponentModel;namespace WpfApplication6{ class MyClass:INotifyPropertyChanged //在set访问器中invoke接口的PropertyChanged事件,更新UI层呈现 { public Type MyType { g原创 2013-06-05 18:51:02 · 931 阅读 · 0 评论 -
WPF核心DLL与类图解
RT,如有遗漏再行补充原创 2013-06-04 18:00:02 · 670 阅读 · 0 评论 -
第2章 XAML
xmlns特性是XML中的一个特殊标记,专门用于声明命名空间。xmlns:Prefix="clr-namespace:Namespace;assembly=AssemblyName"x:Class 告诉XAML解析器用指定的名称生成一个新类。x:Name 告诉XAML解析器将一个字段添加到Window类自动生成的部分(应该是*.g.cs或*.g.i.cs)x:static 允许原创 2013-05-14 15:41:06 · 509 阅读 · 0 评论 -
资源 (WPF)
资源 (WPF)http://msdn.microsoft.com/zh-cn/library/ms742538.aspxStaticResource 标记扩展通过在所有可用的资源字典中查找键的值来处理该键。 这发生在加载过程中,即加载过程需要分配采用静态资源引用的属性值时。DynamicResource 标记扩展则通过创建一个表达式来处理键。该表达式直原创 2013-09-24 16:53:15 · 655 阅读 · 0 评论 -
控件自定义
控件自定义http://msdn.microsoft.com/zh-cn/library/ms752043.aspxWPF 提供三个用于创建控件的一般模型,每个模型都提供不同的功能集和灵活度。 这三个模型的基类分别为UserControl、Control 和 FrameworkElement。如果控件继承自 UserControl,则使用该控件的用户原创 2013-09-27 13:56:00 · 537 阅读 · 0 评论 -
深入浅出WPF 第二部分(30)
WPF Style部分总结代码:原创 2013-12-30 16:18:00 · 598 阅读 · 0 评论 -
深入浅出WPF 第二部分(10)
6.4 Binding对数据的转换与校验Binding用于数据有效性校验的关卡是它的ValidationRules属性,用于数据类型转换的关卡是它的Converter属性。6.4.1 Binding的数据校验ValidationRule类是个抽象类,在使用的时候我们需要创建他的派生类并实现它的Validate方法。Validate方法的返回值是ValidationRule类型对象,如果原创 2012-12-20 17:49:19 · 454 阅读 · 0 评论 -
深入浅出WPF 第二部分(9)
6.3.12 使用Binding的RelativeSource同一级控件知道名字前提下的绑定: 有些时候我们不能确定作为Source的对象叫什么名字,但知道它与作为Binding目标的对象在UI布局上有相对关系,比如控件自己关联自己的某个数据,关联原创 2012-12-20 14:16:22 · 419 阅读 · 0 评论 -
深入浅出WPF 第二部分(8)
6.3.11 使用ObjectDataProvider对象作为Binding的SourceObjectDataProvider,顾名思义就是把对象作为数据源提供给Binding。前面还提到过XmlDataProvider,也就是把XML数据作为数据源提供给Binding。这个类的父类都是DataSourceProvider。原创 2012-12-19 18:04:44 · 425 阅读 · 0 评论 -
深入浅出WPF 第二部分(25)
11.3.2 ItemsControl的PanelTemplateItemsControl具有一个名为ItemsPanel的属性,它的数据类型为ItemsPanelTemplate,ItemsPanelTemplate也是一种控件Template,它的作用是让程序员有机会控制ItemsControl的条目容器。<Window x:Class="WpfApp1.MainWindow"原创 2013-01-04 17:31:54 · 487 阅读 · 0 评论 -
深入浅出WPF 第二部分(23)
第11章 深入浅出话模板11.1 模板的内涵原创 2012-12-31 16:04:26 · 572 阅读 · 0 评论 -
深入浅出WPF 第二部分(20)
9.2 近观命令9.2.1 ICommand接口与RoutedCommandExecute方法:命令执行,或者说命令作用于命令目标之上。CanExecute方法:在执行之前用来探知命令是否可被执行。CanExecuteChanged事件:当命令可执行状态发生改变时,可激发此事件来通知其他对象。9.2.2 自定义Commandnamespace FirstWpfApplica原创 2012-12-27 14:56:07 · 496 阅读 · 0 评论 -
深入浅出WPF 第二部分(18)
第9章 深入浅出话命令9.1 命令系统的基本元素与关系9.1.1 命令系统的基本元素命令(Command):WPF的命令实际上就是实现了ICommand接口的类,平时使用最多的是RoutedCommand类。命令源(Command Source):即命令的发送者,是实现了ICommandSource接口的类。很多界面元素都实现了这个接口。命令目标(Command Target):即原创 2012-12-26 16:35:44 · 699 阅读 · 0 评论 -
WPF 自定义路由事件
C# codes:using System.Windows;namespace WpfApplication6{ public class Dog : UIElement //继承UIElement及其子类,因为AddHandler,RemoveHandler,RaiseHandler在UIElemnt中实现 { public static rea原创 2013-12-18 17:22:12 · 1150 阅读 · 0 评论 -
深入浅出WPF 第二部分(15)
第8章 深入浅出话事件8.1 近视WPF的树形结构WPF中有两种"树":一种叫逻辑树(Logical Tree),一种叫可视元素树(Virtual Tree)。那么当一个路由事件被激发后是沿着Virtual Tree传递的。8.2 事件的来龙去脉事件模型的几个关键部分:事件的拥有者:myButton。事件:myButton.Click。事件的响应者:窗体本身。事件处理器:t原创 2012-12-24 16:09:55 · 565 阅读 · 0 评论 -
WPF知识总结
XAML:声明型语言,UI与逻辑的剥离,Code-Behind。WPF的核心理念是数据驱动UI。x:Class x:ClassModifier x:Name x:FieldModifier x:Key x:Shared x:Type x:Null x:Array x:Static x:Code x:XData(1)布局控件 Grid StackPanel DockPanel Canvas原创 2013-01-08 16:27:53 · 766 阅读 · 0 评论 -
纯代码编写WPF程序
1.创建一个控制台应用程序2. 首先要引入三个程序集如下。//PresentationCore.dll//PresentationFramework.dll//System.Xaml3. 编写window类using System.Windows;using System.Windows.Controls;namespace ConsoleApplication21原创 2013-05-14 14:20:55 · 738 阅读 · 0 评论 -
深入浅出WPF 第二部分(29)
3. 由数据触发的DataTrigger程序中京城会遇到基于数据执行某些判断情况,遇到这种情况时我们可以考虑使用DataTriger。DataTriger对象的Binding属性会把数据源源不断送过来,一旦送过来的值与Value属性一致,DataTriger就会触发。using System;using System.Windows.Data;namespace WpfApp4.Co原创 2013-01-07 16:19:10 · 438 阅读 · 0 评论 -
深入浅出WPF 第二部分(11)
6.4.2 Binding的数据转换当数据从Binding的Source流向Target时,Convert方法将被调用;反之,ConvertBack方法将被调用。using System;using System.Windows.Data;using FirstWpfApplication.Objects;namespace FirstWpfApplication.Convert原创 2012-12-21 15:46:02 · 867 阅读 · 0 评论 -
深入浅出WPF 第二部分(1)
第二部分 游历WPF内部世界第6章 深入浅出话Binding6.1 Data Binding在WPF中的地位应用程序会具有三层结构,即数据存储层、数据处理层和数据展示层。存储层相当于一个城市的仓储区,由数据库和文件系统构成;处理层更正确的称呼应该是逻辑层,与业务逻辑有关、用于加工处理数据的算法都集中在这里;展示层的功能是把加工后的数据通过可视的界面展示给用户或者通过其他种类的接口展示给原创 2012-12-11 13:25:53 · 540 阅读 · 0 评论 -
深入浅出WPF 第一部分(9)
5.4.3 StackPanelStackPanel可以把内部元素在纵向或横向上紧凑排列、形成栈式布局,通俗地讲就是把内部元素像垒积木一样“摞起来”。StackPanel使用3个属性来控制内部元素的布局,它们是Orientation、HorizontalAlignment、VerticalAlignment。Orientation 决定内部元素是横向累计还是纵向累积Horizont原创 2012-12-10 16:33:58 · 554 阅读 · 0 评论 -
深入浅出WPF 第二部分(12)
6.5 MultiBinding(多路Binding)MultiBinding具有一个名为Bindings的属性,其类型是Collection,通过这个属性MultiBinding把一组Binding对象聚合起来,处在这个集合中的Binding对象可以拥有自己的数据校验和转换机制,它们汇集起来的数据将共同决定传往MultiBinding目标的数据。using System;using Sys原创 2012-12-21 16:39:31 · 491 阅读 · 0 评论 -
深入浅出WPF 第一部分(8)
5.4 UI布局(Layout)5.4.1 布局元素Grid(网格), StackPanel(栈式面板), Canvas(画布), WrapPannel(自动折行面板)5.4.2 Grid1. 定义Grid的行与列Grid类具有ColumnDefinitions和RowDefinitions两个属性,它们分别是ColumnDefinition和RowDefinition的集合,原创 2012-12-10 15:04:43 · 754 阅读 · 0 评论 -
深入浅出WPF 第一部分(7)
5.3 各类内容模型详解5.3.1 ContentControl族均派生自ContentControl类。它们都是控件(Control)内容属性的名称为Content只能由单一元素充当其内容 5.3.2 Headere原创 2012-12-10 13:51:28 · 435 阅读 · 0 评论 -
深入浅出WPF 第一部分(5)
4.3 x名称空间中的标记扩展4.3.1 x:Type当我们在XAML中想表达某个数据类型时就需要使用x:Type标记扩展。//MyButton.csusing System;using System.Windows;using System.Windows.Controls;namespace FirstWpfApplication.Controls{ class原创 2012-12-07 15:21:48 · 502 阅读 · 0 评论 -
深入浅出WPF 第一部分(6)
第5章 控件与布局5.1 控件到底是什么WPF中是数据驱动UI,数据是核心、是主动的;UI从属于数据并表达数据、是被动的。5.2 WPF的内容模型 OK OK原创 2012-12-07 17:02:14 · 449 阅读 · 0 评论 -
深入浅出WPF 第一部分(4)
第4章 x名称空间详解4.2 x名称空间中的Attribute4.2.1 x:Class这个attribute的作用是告诉XAML编译器将XAML标签的编译结果与后台代码中指定的类合并。这个Attribute只能用于根结点,使用x:Class的根节点的类型要与x:Class的值所指示的类型保持一致。x:Class的值所指示的类型在声明时必须使用partial关键字。4.2.原创 2012-12-06 17:25:21 · 619 阅读 · 1 评论 -
深入浅出WPF 第一部分(3)
3.2.3 属性元素 3.2.4 标记扩展(Markup Extensions)<Window x:Class="FirstWpfApplication.MainWindow" xmlns="http://schemas.microsof原创 2012-12-06 15:34:14 · 684 阅读 · 0 评论 -
深入浅出WPF 第一部分(2)
3.2 XAML中为对象属性赋值的语法3.2.1 使用标签的Attribute为对象属性赋值 <!--SolidColorBush sBrush=new SolidColorBrush(); sBrush.Color=Colors.Blue; this.rectangle.Fill=sBrush;原创 2012-12-06 11:36:18 · 573 阅读 · 0 评论 -
深入浅出WPF 第二部分(2)
6.3 Binding的源与路径如果想让作为Binding源的对象具有自动通知Binding自己的属性值已经变化的能力,那么就需要让类实现INotifyPropertyChanged接口并在属性的set语句中激发PropertyChanged事件。6.3.1 把控件作为Binding源与Binding标记扩展原创 2012-12-11 14:26:09 · 529 阅读 · 0 评论 -
深入浅出WPF 第二部分(3)
6.3.4 “没有Path”的Binding如果Binding源本身就是数据且不需要Path来指明,这时我们只需将Path的值设置为"."就可以了。在XAML代码里这个"."可以省略不写,但在C#代码里却不能省略。 菩提本无树,明镜亦非台。原创 2012-12-11 17:12:08 · 434 阅读 · 0 评论 -
深入浅出WPF 第二部分(4)
6.3.7 使用集合对象作为列表控件的ItemsSource原创 2012-12-12 15:04:50 · 456 阅读 · 0 评论 -
深入浅出WPF 第二部分(26)
XML最大的优势是可以方便地表示带有层级的数据,同时WPF准备了TreeView和MenuView控件用来显示层级数据。能够帮助层级控件显示层级数据的模板是HierarchicalDataTemplate。<Window x:Class="WpfApp1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/x原创 2013-01-05 13:56:07 · 453 阅读 · 0 评论