WPF学习笔记
文章平均质量分 91
peterzeng20210530
shopify新道路
展开
-
WPF 学习笔记 - 9. Binding (2)
4. 绑定到集合在实际开发中,我们通常是将一个集合数据对象 (比如数据表) 绑定到一个 DataGrid 或者ListBox 列表控件上,这时候我们就需要使用到集合绑定方式。WPF 特意为我们实现了一个System.Collections.ObjectModel.ObservableCollection泛型集合,省却了我们写具备变更通知功能集合代码的时间。Window1.xaml原创 2009-01-16 21:36:00 · 864 阅读 · 0 评论 -
WPF(Windows Presentation Foundation)学习专题
WPF基础入门向您介绍WPF的基础知识,包括WPF的体系结构、可扩展应用程序标记语言(XAML)、通用基类、WPF的属性系统、路由事件、布局系统、样式设置和模板化功能等。通过本章的学习,您可以对WPF基础所支持的编程模型有个清晰的认识和理解。1WPF基础之体系结构2WPF基础之XAML3WPF基础之基元素4原创 2009-05-02 23:52:00 · 1377 阅读 · 0 评论 -
WPF名称范围
名称范围既是一种概念,也是用于存储对象的 XAML 定义名称及其实例等效项之间的关系的编程对象。加载 XAML 应用程序的页面时,即在 WPF 托管代码中创建了名称范围。作为编程对象的名称范围由 INameScope 接口定义,并且还由实际类 NameScope 实现。 加载的 XAML 应用程序中的名称范围 处理 XAML 页时,即对该页的根元素创建了名称范围。该页中指定的每个名称都会添加到转载 2009-05-03 00:00:00 · 1068 阅读 · 0 评论 -
WF的DependencyProperty
1 DependencyProperty从属属性1. 从属属性要定义为静态.为了在外部可以绑定,最好定义为Public2. 从属属性实际上是取代了正常属性的存值变量3. 如果从属属性所对应的正常属性是实例成员,操作属性值时的表现形式为实例成员4. 只有继承System.Workflow.ComponentModel.Depen转载 2009-05-03 00:21:00 · 941 阅读 · 0 评论 -
WPF基础之样式设置和模板化(一)
Windows Presentation Foundation (WPF) 样式设置和模板化是指一套功能(样式、模板、触发器和演示图板),应用程序、文档或用户界面 (UI) 的设计人员使用这些功能可以创建更好的视觉效果,也可以对其产品的统一外观进行标准化。尽管作者或设计人员可以对应用程序的外观逐个进行大量自定义操作,他们还是需要一个功能强大的样式设置和模板化模型,以便在应用程序内部和应用程序之间维转载 2009-05-02 23:46:00 · 2682 阅读 · 1 评论 -
WPF自定义漂亮的按钮样式
首先打开 Microsoft Visual Studio 2008 ,新建一个WPF项目,在上面随便放几个按钮:然后给各个按钮设置不同的背景颜色:设置好之后就是这样啦:然后我们就开始在 App.xaml 文件中定义按钮样式了:定义的样式代码如下:以下为引用的内容: xmlns="http://schemas.microsoft.com/wi原创 2009-05-02 23:50:00 · 4967 阅读 · 0 评论 -
详谈WPF开发中的数据虚拟化
原创 2009-05-02 23:58:00 · 1498 阅读 · 0 评论 -
WPF控件开发之自定义控件(2)
属性的元数据。元数据包含该属性的默认值、CoerceValueCallback 和 PropertyChangedCallback。通过实现该属性的 get 和 set 访问器,定义一个名为 Value 的 CLR“包装”属性,这个名称也就是用来注册该依赖项属性的名称。请注意,get 和 set 访问器只是分别调用 GetValue 和 SetValue。建议依赖项属性的访问器不要包含其他逻辑原创 2009-05-03 00:09:00 · 1551 阅读 · 0 评论 -
在WPF中自定义控件 CustomControl
1,新建CustomControl 在选择控件基类后,第一件事情便是在你的项目中新建"CustomControl",我们会发现在项目中自动生成了一个*.CS(或*.VB或其他)文件以及ThemesGeneric.xaml(如果原来没有的话),他们分别是CustomControl的后台代码文件(Code Behind)与控件的默认主题文件,打开ThemesGeneric.xaml,你会发现原创 2009-05-03 00:15:00 · 7175 阅读 · 1 评论 -
《Programming WPF》翻译 第4章 2.数据绑定(1)
我们手动编写代码保证UI和数据同步。有效将两组属性隐式的绑定在一起,一组来自Person对象,另一组来自显示Person对象的控件。数据绑定用于显式的将属性从一个对象绑定到另一个,保持它们的同步,并转换为适当的类型,正如图4-7所示。 图4-7<img onclick="function onclick(){get_larger(this)}" src="http转载 2009-05-03 00:17:00 · 904 阅读 · 0 评论 -
《Programming WPF》翻译 第4章 2.数据绑定(2)
因此,为了我们的应用程序的功能性如图4-9所示,数据同步的代码减少到,为每一个显示数据的xaml属性设置一个绑定对象,以及使用数据上下文为Binding搜索数据。没有必要初始化UI代码或者事件句柄,来复制和转换数据(注意示例4-11中椭圆的不足) 清楚起见,实现INotifyPropertyChanged的用途绝非偶然。这是WPF数据绑定引擎保持UI同步于对象属性改变的接口。没有转载 2009-05-03 00:18:00 · 1057 阅读 · 0 评论 -
WPF控件开发之自定义控件(1)
Windows Presentation Foundation (WPF) 控件模型的扩展性极大减少了创建新控件的需要。但在某些情况下,仍可能需要创建自定义控件。本主题讨论可最大限度减少在 Windows Presentation Foundation (WPF) 中创建自定义控件以及其他控件创作模型的需要的功能。本主题还演示如何创建新控件。编写新控件的替代方法 以前,如果要通过现有控件获取自转载 2009-05-03 00:05:00 · 2238 阅读 · 0 评论 -
wpf数据绑定常见问题
1.如何与当前页面的元素(如需要获取一个窗体的属性,那么本元素则需要向上寻找)示例:绑定窗体Height属性,显示为300 2.绑定的数据类型转换参数问题(使用资源文件解决) (1)ConverterParameter不是依赖属性,无法绑定,所以定义一个有依赖属性的元素作为资源文件(错误做法)原创 2009-05-02 23:41:00 · 1205 阅读 · 0 评论 -
WPF基础之样式设置和模板化(二)
实质上,上面示例的 DataTemplate 确定只要存在 Photo 对象,该对象就应作为 Image 显示在 Border 中。通过此 DataTemplate,应用程序现在的外观如下:数据模板化模型还提供其他功能。例如,如果要使用 HeaderedItemsControl 类型(如 Menu 或 TreeView)显示包含其他集合的集合数据,则可以使用 HierarchicalDat转载 2009-05-02 23:48:00 · 1792 阅读 · 0 评论 -
WPF控件开发之自定义控件(3)
创建 UserControl 如前所述,在 WPF 中创建控件的最简单方法是从 UserControl 派生。下面的示例演示用于定义 NumericUpDownUserControl 的 用户界面 (UI) 的 XAML: 下面的示例演示此 UserControl 的逻辑。 如此示例所示,自定义 UserControl 的开发模型非常类似于用于应用程序开发的模型。创建自定义控件原创 2009-05-03 00:11:00 · 4525 阅读 · 0 评论 -
WPF基础之样式设置和模板化(三)
IsItemsHost 属性在此示例中,一个必需的重要属性是 IsItemsHost 属性。IsItemsHost 属性用于指示在 ItemsControl(如处理项列表的 ListBox 控件)的模板中,生成的元素应放在什么位置。如果将 StackPanel 的这一属性设置为 true,则添加到 ListBox 的所有项都将进入 StackPanel。请注意,此属性只对 Panel 类型有效。转载 2009-05-02 23:49:00 · 3496 阅读 · 0 评论 -
WPF控件开发之控件概述(3)
说明: 为使此示例正常工作,Button 的 Background 属性必须设置为 SolidColorBrush。 订阅事件 您可以通过使用 XAML 或代码来订阅控件的事件,但只能在代码中处理事件。 下面的示例演示如何订阅 Button 的 Click 事件。 下面的示例处理 Button 的 Click 事件。 控件中的丰富内容 从 Control 类继转载 2009-03-24 22:55:00 · 544 阅读 · 0 评论 -
WPF控件开发之控件概述(2)
更改控件外观 更改控件的外观以适应应用程序的外观,这是很常见的操作。可以根据您要达到的效果,通过执行以下操作之一来更改控件的外观:更改控件的属性值。为控件创建 Style。为控件创建新 ControlTemplate。更改控件的属性值许多控件具有允许您更改控件外观的属性,例如 Button 的 Background。可以在 XAML 和代码中设置值属性。下面的示例在 XAML 中设转载 2009-03-24 22:53:00 · 1107 阅读 · 0 评论 -
WPF 学习笔记 - 12. Binding (5)
10. 数据提供程序(1) XmlDataProviderXmlDataProvider 允许我们直接将 XML 数据作为数据源,我们将前面章节的例子改成 XML 数据岛试试,注意此时我们已经不需要在代码中定义 Personal、PersonalList 类型。 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"转载 2009-01-16 21:38:00 · 734 阅读 · 0 评论 -
WPF 学习笔记 - 1. Application
和 WinForm 类似, WPF 同样需要一个 Application 来统领一些全局的行为和操作,并且每个 Domain 中只能有一个Application 实例存在。和 WinForm 不同的是 WPF Application 默认由两部分组成 : App.xaml 和App.xaml.cs,这有点类似于 Delphi Form,将定义和行为代码相分离。当然,WebForm 也采用了转载 2009-01-16 21:06:00 · 892 阅读 · 0 评论 -
WPF 学习笔记 - 6. RoutedEvent
WPF 的采取了路由事件机制,这样事件可以在可视树上层级传递。要知道 XAML 中控件都是由很多其他元素组合而成,比如我们单击了 Button内部的 TextBlock 元素,Button 依然可以可以接收到该事件并触发Button.Click。通常情况下,我们只是关心逻辑树上的事件过程。我们看看 Button Click 事件的实现。public abstract class But转载 2009-01-16 21:30:00 · 1873 阅读 · 0 评论 -
WPF 学习笔记 - 10. Binding (3)
6. 数据模板数据模板为展示数据提供了极大的灵活性,我们继续以前面的例子来看看它的能力。 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:my="clr-namespace:Learn转载 2009-01-16 21:36:00 · 669 阅读 · 0 评论 -
WPF 学习笔记 - 3. Navigation
互联网的兴起,造就和培养了一种新的用户交互界面 —— Page &Navigation。无论是前进、后退还是页面,都完全是一个全新的门类,不同于以往的 SDI/MDI。WPF 或者是它的简化版Silverlight 都不可避免地遵从了这种改良的 B/S 模式,使用 URI 来串接 UI 流程。NavigationService、Page、Hyperlink、Journal(日志/历史记转载 2009-01-16 21:15:00 · 1930 阅读 · 0 评论 -
WPF 学习笔记 - 4. XAML
Microsoft 将 XAML 定义为 "简单"、"通用"、"声明式" 的 "编程语言"。这意味着我们会在更多的地方看到它(比如Silverlight),而且它显然比其原始版本 XML (XAML 是一种基于 XML 且遵循 XML 结构规则的语言)多了更多的逻辑处理手段。如果愿意的话,我们完全可以抛开 XAML 来编写 WPF 程序。只不过这有点类似用记事本开发 .NET程序的意味转载 2009-01-16 21:18:00 · 991 阅读 · 0 评论 -
WPF 学习笔记 - 5. DependencyProperty
依赖属性并不是一种语言层面的 "属性",而是一种 WPF 提供的 "功能"。它在 CLR Property 的基础上封装了一些内在的行为,使得基于声明式的 XAML 具备更强大的动作操控能力,很显然这比使用程序设计代码编写行为事件要简便和自然得多。依赖属性的特点:(1) 使用高效的稀疏存储系统,这意味着在不设置本地值的情况下,所有同类型对象的依赖属性都将共享默认设置,大大节约内存开销。(2) 依赖转载 2009-01-16 21:27:00 · 1298 阅读 · 0 评论 -
WPF 学习笔记 - 8. Binding (1)
1. 绑定简介WPF 绑定可以在源数据对象和 UI 控件间建立联系,实现单向或双向变更通知,以此实现更好的业务逻辑和 UI 的分离。通常的模式是: 将目标对象(通常是XAML元素控件等)的目标属性(必须是依赖属性)通过绑定对象(Binding对象实例)绑定到数据源(CLR对象、ADO.NET 数据表、XML数据等)。比如我们可以将 TextBox1.Text 绑定到 Personal.Name。下原创 2009-01-16 21:34:00 · 1040 阅读 · 0 评论 -
WPF 学习笔记 - 11. Binding (4)
8. 集合视图当绑定到一个集合对象时,WPF 总是默认提供一个视图 (CollectionViewSource)。视图会关联到源集合上,并自动将相关的操作在目标对象上显示出来。(1) 排序向 CollectionViewSource.SortDescriptions 属性中插入一个或多个排序条件 (SortDescription) 即可实现单个或多个条件排序。Window1.xaml xml转载 2009-01-16 21:37:00 · 758 阅读 · 0 评论 -
[WCF 学习笔记] 1. 基本概念
WCF 被关注的时间已经很长了,全名 "Windows Communication Foundation",它还有另外一个名字叫 Indigo,这应该是微软迈向 SOA 一个重要的标志。对开发者而言,一个统一的模型整合了以往零零碎碎的 WebService、Remoting、MSMQ 等技术,让分布式开发变得更加简单。SOA现在很热闹,但它早已经出现。最初厂商和网站炒 "WebServices转载 2009-01-17 14:43:00 · 605 阅读 · 0 评论 -
WPF 学习笔记 - 2. Dispatcher
WPF 使用一个专用的 UI 线程来完成界面的操作和更新,这个线程会关联一个唯一的 Dispatcher 对象,用于调度按优先顺序排列的工作项队列。Application.Run() 实际上就是对 Dispatcher.Run() 的间接调用。Dispatcher 通过循环来处理工作项队列,这个循环通常被成为 "帧 (DispatcherFrame)"。Dispatcher.Run() 创建并启动转载 2009-01-16 21:11:00 · 1422 阅读 · 2 评论 -
WPF 学习笔记 - 7. Resource
1. 二进制资源WPF 支持三种方式的二进制资源,这些资源可以非常方便地在 XAML 中使用。Resource: 将资源嵌入程序集中,和 Embedded Resource 有点像。区别在于 WPF 将相关资源打包到 .Resources 文件,然后再由编译器嵌入到程序集文件中。WPF 默认的 URI 访问方式是不支持 Embedded Resource 的。Content: 资源不会转载 2009-01-16 21:32:00 · 2175 阅读 · 1 评论 -
WPF – 使用触发器(13) - 触发器
WPF提供了很重要的一个东西就是绑定Binding,它帮助我们做了很多事情,这个我们在WPF学习之绑定这篇里边有讲过。对于Binding我们可以设置其绑定对象,关系,并通过某种规则去验证输入,或者转换值等等,这一切的背后是省去了很多我们需要自己去处理的代码。而对于WPF最主要表现的东西—渲染UI,当然是我们必须去了解和把握的了。美工设计了很多效果,并把其设计成样式展现(很大程度上我们转载 2009-01-16 21:41:00 · 1534 阅读 · 0 评论 -
WPF控件开发之控件概述(1)
Windows Presentation Foundation (WPF) 附带了许多几乎可以在所有 Windows应用程序中使用的常见 UI 组件,其中包括 Button、Label、TextBox、Menu 和ListBox。以前,这些对象被称为控件。不过,WPF SDK 仍继续使用术语“控件”,泛指任何代表应用程序中可见对象的类。请注意,类不必从Control 类继承,即可具有可转载 2009-03-24 22:51:00 · 704 阅读 · 0 评论