随笔分类 -  WPF

摘要:(转)WPF控件开源资源Textbox Drag/Drop in WPFhttp://www.codeproject.com/Articles/42696/Textbox-Drag-Drop-in-WPF.aspxOdyssey RibbonBarhttp://www.codeproject.com/KB/WPF/OdysseyRibbonBar.aspxXPlorerBar: A WPF Windows XP Style Explorer Bar Controlhttp://www.codeproject.com/KB/WPF/XPlorerBar.aspxWPF NotifyIconhtt 阅读全文
posted @ 2014-04-11 12:21 bluealarm 阅读(11278) 评论(1) 推荐(2)
摘要:WPF 中的树 WPF 中主要的树结构是元素树。如果使用 XAML 创建应用程序页,则将基于标记中元素的嵌套关系创建树结构。如果使用代码创建应用程序,则将基于为属性(实现给定元素的内容模型)指定属性值的方式创建树结构。在 Windows Presentation Foundation (WPF) 中,处理和使用概念说明元素树的方法实际上有两种:即逻辑树和可视化树。 逻辑树用途 ... 阅读全文
posted @ 2008-11-24 16:00 bluealarm
摘要:UIElement定义核心子系统,包括 Layout、Input 和 Event。 输入是作为内核模式设备驱动程序上的信号发出的,并通过涉及 Windows 内核和 User32 的复杂进程路由到正确的进程和线程。与输入相对应的 User32 消息一旦路由到 WPF,它就会转换为 WPF 原始输入消息,并发送到调度程序。WPF 允许原始输入事件转换为多个实际事件,允许在保证传递... 阅读全文
posted @ 2008-11-24 14:53 bluealarm
摘要:msdn:http://msdn.microsoft.com/zh-cn/library/aa970678.aspx http://www.cnblogs.com/wdwbto/articles/573177.html MSBuild是.NET 2.0 Runtime中包含的基于XML的生成引擎.Visual Studio中所有的.csproj和.vbproj项目文件都可以看作是MSBuild文件... 阅读全文
posted @ 2008-11-24 14:04 bluealarm
摘要:前两天在使用wpf中的Window时,需要显示该Widow,获取该对话框的大小,然后再关闭掉该对话框。但是在这个过程中出现了一个错误。如下: Additional Information: 运行库遇到了错误。此错误的地址为 0x56d7b7a7,在线程 0x10bc 上。错误代码为 0x80131623。此错误可能是 CLR 中的 bug,或者是用户代码的不安全部分或不可验证部分中的 b... 阅读全文
posted @ 2008-10-10 17:03 bluealarm
摘要:WPF 控件的默认 UI 通常由其他控件和形状构造而来。有时控件的默认外观可能与应用程序的整体外观不一致。在这种情况下,您可以使用 ControlTemplate更改控件的 UI 的外观,而无需更改控件的内容和行为。 控件模板使您可以指定控件的外观,数据模板则允许您指定控件内容的外观。数据模板通常用于改进绑定数据的显示方式。例如我们可以通过将时间的字符串形式表示为一个图... 阅读全文
posted @ 2008-09-25 15:11 bluealarm
摘要:开发人员和设计人员使用样式可以对其产品的特定外观进行标准化。WPF 提供了一个强大的样式模型,其基础是 Style元素。 虽然Resource对于在XAML中定义对象的属性十分有用。但是Resource段的主要目的还是用来定义Styles。Styles是应用在元素上的属性值的基本集合。它可以具有批处理功能,能够弥补单一的Resource属性无法在XAML中应用到多个元素的不足... 阅读全文
posted @ 2008-09-22 17:36 bluealarm
摘要:数据绑定是将控件、元素与数据相结合的一种技术。控件一般都有双向的服务:显示数据给用户和允许用户改变数据。对于Checkbox,在过去编程时,需要通过编写代码将一个定义的bool变量初始化给checkbox控件。将用户对checkbox的改变返回给该变量。而现在的环境中,我们只需要将checkbox和一个变量绑定即可。绑定会自动完成交互服务。 在简化编程时,我们经常用... 阅读全文
posted @ 2008-09-22 17:20 bluealarm
摘要:如果我们需要对一些控件使用不同的字体大小时,我们可以通过硬编码的方式实现。但更好的方式是通过资源(Resource)。这里所说的资源并不是我们用用VS开发时的资源,那种资源一般是assembly 资源。 WPF中的资源指的是本地定义的资源,因为它们是定义在XAML(或者C#)中,并且与一个元素或者应用程序绑定。特定的资源只会对被资源定义的控件和其派生子控件有用。我们可以认为它... 阅读全文
posted @ 2008-09-22 16:44 bluealarm
摘要:WPF中的XAML(可扩展应用程序标记语言)是辅助的界面编程工具语言。它是基于XML的。每个XAML元素都是一个.NET CLR类。XAML主要用来进行对象的创建和初始化。 XAML经常来代替类的构造函数,用来布局和绑定事件。而事件的处理程序则一般在后台代码中实现。当然,有的也可以用数据绑定(data binding)来代替事件处理程序。这样,就可以把绑定放到XAML中了。 ... 阅读全文
posted @ 2008-09-22 00:17 bluealarm
摘要:许多控件都派生自ControlControl类,例如:Window、button、ScrollViewer等,他们都有一个Content属性,可以用来添加其他元素。下面要介绍的时Control的另一个分支:ItemsControl。它直接从Control继承。从ItemsControl继承的控件可以显示多个Item。这些控件包括:Menus、Toolbars、statusbars、tre... 阅读全文
posted @ 2008-09-21 22:36 bluealarm
摘要:msdn: http://msdn.microsoft.com/zh-cn/library/ms750441.aspx 部分继承结构图: System.Object System.Windows.Threading.DispatcherObject System.Windows.DependencyObject ... 阅读全文
posted @ 2008-09-18 14:59 bluealarm
摘要:Application类是构建WPF应用程序过程中最常见和最重要的对象之一,其核心功能是封装整个WPF应用程序。换句话说,每个WPF应用程序都是一个Application对象,其支持各种核心应用程序服务。 对操作系统而言,Application对象表示应用程序,并且允许系统与应用程序通信。Application 对象支持属性、方法和事件,这些属性、方法和事件使您可以将一个可扩展... 阅读全文
posted @ 2008-09-18 14:31 bluealarm
摘要:跨线程调用控件 WPF应用程序都至少有两个线程,一个用于UI绘制,其隐藏于后台,另一个用于管理UI。WPF中UI元素只能由创建该元素的线程来访问。Dispatcher类来负责线程的组织和维护。通用的解决方法是使用提供的Dispatcher.Invoke方法来调用一个Delegate,从而安全地跨线程调用。(在winform中,是Control.Invoke)。 如下: ... 阅读全文
posted @ 2008-09-18 11:23 bluealarm
摘要:TreeView表示的是层次化结构(hierarchical)数据。TreeView的每一项称为TreeViewItem。TreeViewItem既可以被定义成一个字符串,也可以是一个嵌套的Item对象集合。TreeView的类层次结构如下: Control ItemsControl HeaderedItemsControl ... 阅读全文
posted @ 2008-09-17 17:03 bluealarm
摘要:Control WPF中的控件都是从Control派生而来。类层次如下: Object DispatcherObject (abstract) DependencyObject Visual (abstract) ... 阅读全文
posted @ 2008-09-16 14:49 bluealarm
摘要:颜色 在WPF中,颜色是由System.Windows.Media下的Color结构体来封装的。Color有三种颜色R,G,B组成。 除了这三个属性,Color还增加了一个alpha管道属性A。它用来表示透明度(Opacity)。值为0时,表示透明(taransparent)。值为255时,表示不透明(opaque)。默认的颜色透明度为opaque。WPF提供了下面的函数来创建... 阅读全文
posted @ 2008-09-16 13:56 bluealarm
摘要:在动态定位布局时,经常需要获取控件或鼠标的相对位置,WPF提供了这样的函数可以我们使用。 1、获取元素相对于父控件的位置 使用Vector VisualTreeHelper.GetOffset(Visual visual)方法,返回visual在其父控件中的偏移量,然后你再将返回值的Vector对象转换成Point对象 2、获取元素相对于祖宗控件或子孙控件的位置 使用元素的 Genera... 阅读全文
posted @ 2008-09-08 17:09 bluealarm
摘要:从Window继承的控件窗体,实现窗体拖动时可以简单的调用DragMove方法。但是对于自定义控件可以采取响应MouseButtonDown,MouseMove,MouseButtonUp的方法来实现控件的拖动。首先定义两个位置变量: Point pOld = new Point(); Point pNew = new Point(); 1、MouseButtonDown 在此函数中实... 阅读全文
posted @ 2008-09-08 16:47 bluealarm
摘要:如果想制作一个不规则形状的窗体可以采取以下步骤: 1、设置窗体属性 this.WindowStyle = WindowStyle.None;//设置成无边框形式 this.Background = null;//设置背景色为空(即黑色)。 this.AllowsTransparency = true;//设置窗体允许透明,这样我们就可以通过透明度:Opacity或者Opacitymask 对它进行... 阅读全文
posted @ 2008-09-08 16:15 bluealarm