![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
G.WPF
clingingboy
这个作者很懒,什么都没留下…
展开
-
Win32 Api(显示程序系统菜单)
即在程序标题栏上右键时弹出的菜单此菜单会根据窗体的状态而不同,如最大化状态时则如上图1.GetSystemMenuThe GetSystemMenu function allows the application to access the window menu (also known as the system menu or the control menu) for copyin原创 2010-05-18 14:09:00 · 1548 阅读 · 1 评论 -
Caliburn笔记-Action简写(wpf框架)
http://caliburn.codeplex.com/wikipage?title=Action%20Basics&referringTitle=Documentationpublic void Demo(){ MessageBox.Show("hello");}1.传递方法Button Content="Demo" cal:Message.At原创 2009-12-30 10:49:00 · 715 阅读 · 0 评论 -
Caliburn笔记-依赖注入容器(wpf框架)
参考与此http://caliburn.codeplex.com/wikipage?title=Auto-Registering%20Components&referringTitle=Documentation 此为基础,看了没用,不看不行…了解下注册流程. 注册组件,差不多离不开这几种模式 手动注册 元数据标签注册 外部dll加载注册 1.内置服务则用手动注册. 2.挂元原创 2009-12-30 11:49:00 · 1372 阅读 · 0 评论 -
Caliburn笔记-过滤器管理(IFilterManager)(wpf框架)
过滤器用于装饰对象本身和对象中的方法.如下图 具体介绍可见此 http://caliburn.codeplex.com/wikipage?title=Filters&referringTitle=Documentation IFilterManager IFilterManager接口为过滤器管理器,用于存放过滤器接口,每个Action都有一个过滤器管理器 1.IRescu原创 2009-12-30 13:49:00 · 747 阅读 · 0 评论 -
Caliburn笔记-Dependent Action(wpf框架)
http://caliburn.codeplex.com/wikipage?title=Dependent%20Actions&referringTitle=Documentation 这一部分功能也属于过滤器.再来看两个接口FilterManager会在构造函数中,对实现该接口的Filter进行初始化public interface IInitializable : IFil原创 2009-12-30 17:49:00 · 524 阅读 · 0 评论 -
wpf控件开发基础(4) -属性系统(3)
知识回顾 接上篇,上篇我们真正接触到了依赖属性的用法,以及依赖属性的属性元数据的用法,并且也实实在在地解决了之前第二篇提到的一系列问题.来回顾一下 属性默认值 属性变更通知 属性强制回调 本篇将继续讨论上一篇提到的问题,主题依然是属性元数据. 内容概要 属性值验证 默认值问题 依赖属性的不变与可变 属性元数据的唯一性 重写属性元数据 改写属性元数据 一.属性值验证 依赖属性具备属性验证原创 2010-02-02 15:49:00 · 654 阅读 · 0 评论 -
wpf控件开发基础(2) -属性系统(1)
距离上篇写的时间有1年多了.wpf太大,写的东西实在太多,我将依然围绕着自定义控件来展开与其相关的技术点. 也欢迎大家参与讨论.这篇我们将要讨论的是WPF依赖属性,接触过的朋友应该对其有所了解,但在我们讲WPF依赖属性之前,我们来看看在WPF出现之前.net中的属性是如何使用的. 普遍存在的属性问题 c#基本属性 ASP.NET自定义控件属性 WinForm自定义控件属性原创 2010-02-01 16:49:00 · 822 阅读 · 0 评论 -
wpf控件开发基础(5) -依赖属性实践
知识回顾 接上篇,回顾这三篇讲了什么东西 首先说明了属性的现存问题,然后介绍了依赖属性的基本用法及其解决方案,由于依赖属性以静态属性的方式存在,进而又介绍了可重写的属性元数据的使用.这是以上三篇所说明的问题.当然依赖属性的特性依然没有说完整.这两天也一直在想依赖属性,然后就是头疼,呵呵.由于WPF的依赖属性系统与整体功能都有关联,所以接下来等讲到某个特性的时候然后再来讲依赖属性.这篇我们来原创 2010-02-03 12:49:00 · 1889 阅读 · 5 评论 -
wpf控件开发基础(3) -属性系统(2)
上篇说明了属性存在的一系列问题. 属性默认值,可以保证属性的有效性. 属性验证有效性,可以对输入的属性进行校验 属性强制回调, 即不管属性有无发生变化,都要做出通知. 属性变更通知,当属性发生变化可以通知程序作出一系列的处理. 这里还没WPF什么事,我们来看看依赖属性是如何解决以上问题的. 内容概要 定义第一个最简单的依赖属性 依赖属性值基本操作 属性包装器 属性元原创 2010-02-01 22:49:00 · 714 阅读 · 0 评论 -
xaml2009新特性
New WPF Features http://blogs.msdn.com/llobo/archive/2009/11/25/concluding-new-wpf-features-series.aspx 基本的特性,大家参考一下,若有遗漏,还请补充 一.支持CLR基本类型 http://schemas.microsoft.com/winfx/2006/xaml命名空间默认支持原创 2009-12-03 16:11:00 · 601 阅读 · 0 评论 -
Caliburn笔记(1)(wpf框架)
此框架地址如下http://caliburn.codeplex.com.先来学习一下其中的一些概念. 一.启动时加载服务 一切还是从容器开始,Caliburn提供了一个默认的Ioc容器,当然也可以用第三方的,如下 我们学习的目标则是了解Caliburn为我们提供了多少的功能服务,这些就是我们所需要了解的 二.Microsoft.Practices.ServiceLocat原创 2009-10-29 11:08:00 · 811 阅读 · 0 评论 -
wpf学习笔记---Canvas
继续发. Canvas为容器控件,用于定位1.基本应用 Border HorizontalAlignment="Left" VerticalAlignment="Top" BorderBrush="Black" BorderThickness="2"> Canvas Background="LightBlue" Width="400" Height="400">原创 2007-03-04 16:09:00 · 642 阅读 · 0 评论 -
wpf学习笔记---TextBox
一.1.文本框内文字移动翻行,翻页,上移到顶部和尾部2.事件TextChanged(Text更改)和SelectionChanged(Text选中)3.鼠标定位public void Select (int start,int length)4.选中的文字SelectedText属性5.定义右键菜单,并定义事件ContextMenuTextBox.Con原创 2007-03-05 22:09:00 · 557 阅读 · 0 评论 -
wpf学习笔记---DockPanel
DockPanel为容器控件.主要了解其Dock属性和LastChildFill属性的使用下面以代码示例1.DockPanel LastChildFill="True"> Button DockPanel.Dock="Top">TopButton> Button DockPanel.Dock="Bottom">BottomButton> Button Do原创 2007-03-04 12:09:00 · 545 阅读 · 0 评论 -
wpf学习笔记---Viewbox
1.Canvas Width="18" Height="18" VerticalAlignment="Center"> Ellipse Canvas.Left="1" Canvas.Top="1" Width="16" Height="16" Fill="Yellow" Stroke="Black" /> Ellipse Canvas.原创 2007-03-04 17:09:00 · 761 阅读 · 0 评论 -
wpf学习笔记---Button
1.CheckBox与RadioButton公共要素(1)IsChecked为属性,Check为事件(2)为Content添加图片CheckBox Name="cb6" Checked="HandleChange1">Image Source="data/flower.jpg" Height="30" Width="30"/>CheckBox>2.RadioButto原创 2007-03-04 20:09:00 · 558 阅读 · 0 评论 -
wpf学习笔记---初识xaml标签语言
最近下载了windows sdk,也来凑下热闹学学新技术。顺便也简单的记录下学习过程.此非教程.由于刚接触,一切皆以实用为主.先了解其特性为好.一.xaml的结构为xml形式组成,与flex中的标签语言很相似.这个是比html好的地方,不写废话了.写些实用的东西二.XAML基本语法1.根元素必须声明命名空间,如Page xmlns="http://schemas.mic原创 2007-03-04 11:09:00 · 1130 阅读 · 0 评论 -
Caliburn笔记-Action的创建(wpf框架)
若一个对象被设置成为DataContext,该对象的方法称之为Action,caliburn通过附加属性来绑定这些Action,首先则需要获取绑定对象的方法.如下示例对象,则有4个方法.[Rescue("GeneralRescue")]public class Calculator{ //Note: This rescue catches exceptions t原创 2009-12-25 11:11:00 · 674 阅读 · 0 评论 -
Caliburn笔记-元数据(Metadata)管理(wpf框架)
在.net中允许我们使用元数据(即Attribute),在使用Action时,结合元数据可以为框架功能提供一些便利. caliburn提供了很多的元数据,其皆继承自IMetadata接口,该接口即一个空元数据标记接口而已,继承此接口的元数据则表明为属于caliburn功能范围内的元数据,方便管理. IMetadataContainer接口提供了对IMetadata的管理 M原创 2009-12-25 10:11:00 · 736 阅读 · 0 评论 -
WPF技巧(5)元素的加载与卸载(Loaded and Unloaded)
FrameworkElement有两个初始化和一个卸载事件 还是以代码来示例一.Initialized触发条件(元素拥有容器,并初始化)当元素实例化以后并被加入到逻辑树中时会触发此事件,此事件可以获取到元素的初始值public Demo1(){ InitializeComponent(); panel = new StackPanel(); Bu原创 2010-05-17 12:08:00 · 1654 阅读 · 0 评论 -
WPF技巧(2)绑定到附加属性
Button Content="{Binding Path=(DockPanel.Dock),ElementName=Element_ListBox,Mode=TwoWay}"> 是可以绑定附加属性的,记得给两侧加括号原创 2010-05-07 11:09:00 · 2063 阅读 · 0 评论 -
WPF技巧(4)使用Visual元素
Visual继承自DependencyObject,属于WPF所有控件类的基类,其大多数以Visual开头的属性均受保护. Visual无法直接使用,可以看到Panel添加的元素最低级别为UIElement. 添加Visual对象必须使用AddVisualChild方法等一系列方法,(与FrameworkElement区分开来)原创 2010-05-07 15:09:00 · 820 阅读 · 0 评论 -
WPF技巧(3)监测属性变更
public Window1(){ InitializeComponent(); this.TargetUpdated += new EventHandlerDataTransferEventArgs>(Window1_TargetUpdated); this.SourceUpdated += new EventHandlerDataTransferEve原创 2010-05-07 14:09:00 · 1193 阅读 · 0 评论 -
WPF技巧(1)异步绑定
与大家共勉 当属性值填充好后,与该属性绑定的界面才会开始加载(属性绑定优于控件加载) 这个技巧很简单,但却影响着运行的速度.以下为测试 1.定义一个集合属性private IListstring> _list;public IListstring> List{ get { if (_list == null) {原创 2010-04-26 22:07:00 · 1952 阅读 · 2 评论 -
wpf 控件开发基础(6) -单一容器(Decorator)
其实这部分的文章已经很多了,写下来方便自己查询. wpf内置提供了很多容器(Panel),容器分为多容器和单容器.下面介绍单容器.内置的单容器,大家最熟悉的如Border,其作用用于装饰容器内的元素,单一容器继承自Decorator,下面来看一个未使用装饰器的例子. Window x:Class="WPFControlTutorialPart6_WPFApp.Window1"原创 2010-04-06 23:56:00 · 880 阅读 · 0 评论 -
wpf单容器中的Chrome
Chrome有点类似于用GDI+画图一般,除了模板,也可以使用DrawingContext对象来画图. WPF内置的很多控件都是如此实现的,虽然麻烦了一些,可能是为了提升性能考虑. 其方式与定义样式模板差不多,只不过换成代码形式了. 1.先定义控件不同状态下的颜色,如private static SolidColorBrush CommonDisabledBackgroundOverlay原创 2010-04-07 12:56:00 · 739 阅读 · 0 评论 -
Caliburn笔记-Presenter的管理(wpf框架)
回头来看caliburn是如何初始化程序界面 CaliburnApplication CaliburnApplication继承自WPF的Application类,其初始化了caliburn的接口,同时提供了一个窗口管理的接口IWindowManager,与prism框架不同这个shell是非强制性的 一.初始化 ////// Raises the event./// //原创 2009-12-28 14:10:00 · 682 阅读 · 0 评论 -
Caliburn笔记-Presenter(wpf框架)
又是MVP... 先来看下图,MetadataContainer已经知道是元数据的功能了。PresenterBase继承了IExtendedPresenter接口,所以重点看这个接口. 参考于此:http://caliburn.codeplex.com/wikipage?title=IPresenter%20Component%20Model&referringTitle=Docu原创 2009-12-28 11:11:00 · 635 阅读 · 0 评论 -
Caliburn笔记-Presenter与View(视图策略)(wpf框架)
参考:http://caliburn.codeplex.com/wikipage?title=View%20Strategies&referringTitle=Documentation 来看下presenter是怎么与view分开的,calbiburn把view和presenter分的很彻底,view很干净,presenter也很干净,几乎感觉不到他们两有关系.这一点感觉设计的非原创 2009-12-28 23:10:00 · 722 阅读 · 0 评论 -
Caliburn v2 变更-模块化
看下这个是什么东西. 主要功能是把相关服务组合放在一个Module里面 ModuleBase和CaliburnModule都没什么东西,ConventionalModule是关键实现,CoreConfiguration是ConventionalModule的简化版本,在使用过程中填充CoreConfiguration就可做掉一切 核心Service 一目了然,此接口仅是一个原创 2010-03-08 14:08:00 · 439 阅读 · 0 评论 -
Caliburn v2 变更-Presenter->Screen
这个变动影响全局(作者就是很喜欢改名字…后面还有)参考此http://www.cnblogs.com/Clingingboy/archive/2009/12/28/1634054.html 原命名空间Caliburn.PresentationFramework.ApplicationModel 现命名空间Caliburn.PresentationFramework.Scr原创 2010-03-08 15:08:00 · 540 阅读 · 0 评论 -
Caliburn v2 变更-容器
做记录… 对容器进行了重构,命名空间进行了调整,为Caliburn.Core.IoC 添加了IRegistry接口,用于注册,之前没有接口用于注册,只能是从容器中取/// /// Implemented by a class that can register components with an IoC container./// public interface IR原创 2010-03-08 10:08:00 · 546 阅读 · 0 评论 -
Caliburn v2 变更-启动初始化
基本也是属于重构代码,但清晰很多CaliburnFramework .Configure() .With.Core() .With.PresentationFramework() .Start();配置容器,加载核心服务,然后加载WPF服务,然后启动 IModuleHook可以将外部模块加到配置当中,即用于扩展而用两种原创 2010-03-08 14:08:00 · 416 阅读 · 0 评论 -
Caliburn笔记-消息触发器(wpf框架)
参考此http://caliburn.codeplex.com/wikipage?title=Message%20Triggers&referringTitle=Documentation 先看下面一段xamlButton Content="Divide (Trigger Collection w/ Explicit Parameters)"> cal:Message.Tri原创 2009-12-25 15:11:00 · 698 阅读 · 0 评论 -
Caliburn笔记-方法(IMethod)的创建(wpf框架)
为了适应框架的需要,对原生的MethodInfo进行了改造,如下图 我们可以看到,主要的功能点是允许方法可以进行异步操作.其次IMethod也继承了IMetadataContainer接口,在方法上使用元数据也非常普遍.如下为默认实现的抽象类/// /// A base class for implementations./// private abstract cla原创 2009-12-25 11:11:00 · 572 阅读 · 0 评论 -
wpf学习笔记---StackPanel
StackPanel为容器控件,可与DockPanel进行比较,下面为常用属性示例1.Orientation属性用法与web控件中的DatList的RepeatDirection属性相同2.HorizontalAlignment和VerticalAlignment效果(1)全局 StackPanel HorizontalAlignment="Left" Orientation原创 2007-03-04 13:09:00 · 501 阅读 · 0 评论 -
wpf学习笔记-简单绑定
开始写wpf笔记,都为小示例1.创建一个类namespace SimpleBinding{ public class Person { private string _nameProperty = "Joe"; public Person() { } public string Name原创 2008-05-31 11:06:00 · 372 阅读 · 0 评论 -
Prism V2之旅(5)
上篇介绍了WPF的Attach Behavior(附加行为)模式以及如何在prism框架中如何使用附加行为和RegionAdapter的扩展.这篇来介绍Prism中的很重要的一个功能模块化.请下载Demo基本概念模块化的概念类似于现在网上比较流行的Widget,如下例子google的个性化页面 vista的sidebar 他们都有如下特性:原创 2009-01-13 11:05:00 · 1006 阅读 · 1 评论 -
Prism V2之旅(6)
这篇来讲事件.事件主要用来交互.监听事件 我订阅了一些blog的rss,如果我订阅的blog发布了新的文章的话,系统(就是抓虾)就会帮我抓取新的rss信息 很好理解,一方订阅(Subscribe),一方发布(Publish).prism的事件 prism的抽象类EventBase实现了事件的订阅和发布的操作.CompositePresentatio原创 2009-01-13 15:05:00 · 597 阅读 · 0 评论 -
prism v2之旅(7)
这篇继续介绍Module的功能.第5篇已经介绍过模块的一些基本功能了,这篇介绍模块在silverlight的特殊应用.silverlight的项目生成文件是xap文件,其提供了一个非常方便的功能,即相互的xap文件可以相互加载,就如flash的swf文件一样可以动态加载.建议你在看下去之前先看一下TerryLee写的这两篇文章这里我简单的总结一下silverlight程序原创 2009-01-15 23:05:00 · 653 阅读 · 0 评论