自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (7)
  • 收藏
  • 关注

翻译 #147 – Use SetCurrentValue When You Want to Set A Dependency Property Value from Within a Control

使用SetCurrentValue 方法在控件内部设置依赖属性的值当你写一个控件的时候,你可能会想设置控件自己拥有的依赖属性的值。举个例子,一个数字递增递减的控件通过点击箭头按钮改变数字的值。但是问题是直接设置本地属性值,会覆盖其他来源对属性值的改变,比如绑定。如果直接设置本地属性,该属性上所有的绑定都会失效。

2016-06-30 11:13:04 515

翻译 #146 – Use GetValueSource Method to Find the Source of a Dependency Property Value

使用GetValueSource 方法获得依赖属性值的来源有时候能够确定依赖属性当前值的来源是非常有用的。你可以使用DependencyPropertyHelper.GetValueSource 方法实现。在下面的例子中,Foreground 属性的值可以来自样式或者样式里定义的基于的IsEnabled 属性的触发器。

2016-06-30 09:51:56 392

翻译 #131 – Dependency Properties Inherit Values from Higher Up in the Logical Tree(逻辑树中元素的依赖属性可从其上层元素继承)

依赖属性的值可以有很多不同的来源,比较常见的一种是从其逻辑树的更上层继承而来。这意味着当我们在XAML或者代码中设置一个依赖属性的值的时候,这个值会沿着逻辑树向下传递给其他同样拥有这个依赖属性的元素。下面是个例子。有若干个控件的FontStyle 属性值继承自最高级的Window 元素。

2016-06-29 09:45:20 572

翻译 #128 – Using Code Snippets to Implement a Dependency Property(用代码段实现依赖属性)

用代码段实现依赖属性Visual Studio 2010有一个很方便在类中实现依赖属性的功能——插入代码段。首先,在代码编辑页面中空白行中点击鼠标右键,选中“插入代码段”选中NetFX30

2016-06-28 14:29:14 499

翻译 #123 – Coercing a Dependency Property(强制转换依赖属性的值)

在一个类中使用依赖属性的时候,可以选择在注册该依赖属性的时候指定一个强制转换回调函数(coercion callback)。当属性将要返回一个属性值的时候该回调函数被调用。通过强制转换回调函数可以强制改变依赖属性的值。在注册依赖属性的时候,通过CoerceValueCallback 委托指定强制转回调函数

2016-06-28 11:10:08 489

翻译 #122 – Validating a Dependency Property(验证依赖属性)

在某个类中使用依赖属性的时候,可以选择在是否注册依赖属性的时候指定一个验证回调函数(validation callback)。如果指定了验证毁掉函数,当为该依赖属性的设置一新的值的时候,这个回调函数会被调用并返回true或者false以表示新设置的值是否有效。在注册依赖属性的时候指定回调函数。

2016-06-28 10:34:51 449

翻译 #121 – Being Notified When the Value of a Dependency Property Changes(属性值改变通知)

一个应用了依赖属性的类可以选择当属性值发生改变的时候发出通知。要实现通知,该类在注册属性的时候要指定一个PropertyChangedCallback

2016-06-27 11:22:42 369

翻译 #120 – Clearing a Dependency Property Value(清除依赖属性的值)

我们可以在代码或者XAML中设置依赖属性的值,并且本地值会覆盖继承而来的值或者默认值。同样也可以使用DependencyObject.ClearValue 方法清除属性值。这样会使本地属性值失效,依赖属性的值将会恢复为继承而来的值或者默认值。(属性值可以有多个来源)

2016-06-27 10:35:08 500

翻译 #118 – Don’t Add Code to Dependency Property Getter/Setter(不要在依赖属性的Getter/Setter中加入处理代码)

当我们使用自定义的依赖属性的时候,一般通过getter/setter 方法包裹DependencyObject.GetValue 和DependencyObject.SetValue 来使用。这样可以让依赖属性像一般的公共语言运行库(CLR)属性一样被使用,下面是一个例子:

2016-06-27 09:53:20 650

翻译 #117 – Registering a Dependency Property(注册一个依赖属性)

为了使用依赖属性,要在使用的类中创建一个DependencyProperty 类的静态实例。之所以创建静态的实例是因为在DependencyProperty 类中仅仅只是描述这个依赖属性,而并没有真正的存储这个依赖属性的值。你可以

2016-06-23 17:28:43 546

翻译 #116 – Dependency Property Values Are Stored in the DependencyObject(依赖属性存储在DependencyObject中)

标准的CLR属性值是存储在定义该属性的实例中的,即使这个属性自创建以后从来没有被复制或者更改,它依然会占用内存空间。而依赖属性的值只有被设置为非默认值的时候才会被存储(值不占用内存空间),而当访问没有设置值的依赖属性将会只返回一个默认的值。

2016-06-21 18:13:05 308

翻译 #114 – How Dependency Properties Are Implemented(依赖属性是如何应用的)

在WPF中,依赖属性可以当做一般CLR属性一样使用,但是它实际应用起来却完全不一样。它增加了许多复杂的功能处理数据绑定、属性继承和属性更改通知。一个想要应用依赖属性的类必须继承自DependencyObject,DependencyObject 类支持读写依赖属性。

2016-06-21 17:51:03 442

翻译 #112 – Navigating the Visual Tree in Code(在后台代码中导航可视树)

你可以用VisualTreeHelper.GetChildrenCount 和GetChild 方法枚举可视树中所有的元素。你可以用下面的循环获得某个父级元素下面所有的可视树子元素:for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++) Debug.WriteLine(VisualTreeHe

2016-06-20 18:06:34 342

翻译 #111 – The Visual Tree(可视树)

WPF中的可视树是将逻辑树分解为最原始的可视元素。逻辑树中的元素一般都是控件,但是可视树中确实显示控件的基础可视元素。可视树中所有的元素都源自于 Visual o或者Visual3D。举个例子,下面是一个XAML的可视树

2016-06-17 15:36:28 613

翻译 #108 – The Logical Tree(逻辑树)

在WPF中,逻辑树表示组成UI的元素的层级关系。如果UI在XAML中定义,逻辑树可以看做是由一组XAML元素通过 父/子 关系组成的树。逻辑树同样可以被认为是一种描述运行环境中哥哥元素间关系的模型。了解逻辑树可以帮助理解以下内容: -资源查找 -属性继承 -事件路由

2016-06-16 10:16:44 1015

翻译 #106 – Set Property Value to Point to Another Object(设置属性值指向另一个object)

有时候在XAML中需要设置当前元素某个属性指向另外一个元素。比如CommandTarget 属性,它被用来判断当前控件是否是command的发起者。

2016-06-16 09:48:53 375

翻译 #100 – Loose XAML Files(松散XAML文件)

松散XAML文件是指不和后台代码有关联并且不会变应用程序编译的XAML。一个松散的XAML文件可以被IE浏览器加载并显示出其界面。下面是一些关于松散XAML的规则:  -最高级的根元素不能是Window,但可以是Page或者其他GUI元素(例如StackPan

2016-06-14 14:11:46 1117

翻译 #98 – How Attached Properties Work in WPF(附加属性在WPF中如何工作)

在XAML中,附加属性允许给并不是定义该属性的类型的实例附加一个属性值。(例如Grid.Row 属性可以设置给Button)。当XAML解析器遇到附加属性的时候,它会调用定义属性的类的静态方法获取或者设置附加属性的值

2016-06-13 17:46:19 380

翻译 #95 – x:Name vs. Name

从基类中继承了Name 属性的元素可以使用Name 属性。但是继承自没有定义Name 属性的类的元素,如果想在后台代码中被引用,必须使用x:Name 属性。通常,这Name and x:Name 可以互换,前者是一个类的真实属性,后者是x: 命名空间中一个通过XAML语法解析器转换使用的指令。 从基类中继承了Name 属性的元素可以使用Name 属性。但是继承自没有定义Name 属性

2016-06-13 14:05:49 667

翻译 #90 – 单步调试VS2010自带的源码(Stepping Into .NET Source Code in Visual Studio 2010)

有的时候能够在调试器中单步调试VS2010自带类.NET库的源码如果工作,而不是仅仅只查看元数据,是非常有帮助的。

2016-06-12 16:04:19 1688

翻译 #85 – Two Main Namespaces Used in Every WPF XAML File(2个在每个XAML中都会使用的命名空间)

在WPF项目的每个XAML文件的顶部,你都会发现两个命名空间:xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

2016-06-08 16:16:10 397

翻译 #72 – XAML Namespaces

在XAML中,一个命名空间就是一个通过URI引用表示的名字的集合,这些名字可以在XAML文档中作为元素和属性使用。(参见W3C definition of namespace)。除了作为在XAML中使用的元素和属性的名字集合以外,一个XAML命名空间也对应相应的.NET类,这些类可能包含在一个或者多个.NET命名空间中。

2016-06-08 11:00:35 287

翻译 #69 – Internet Explorer Can Interpret XAML Directly(IE可以直接编译XAML文件)

XAML并不是能被直接执行的代码,它是一种可以被工具解析的用户接口定义。你可以直接使用IE载入XAML,IE会根据XAML文件渲染出用户界面。 你可以

2016-06-07 17:21:43 646

翻译 #55 – Application.ShutdownMode

WPF的Application 类有一个ShutdownMode 属性,可以判断调用ShutDown方法终止程序的条件。这个属性的默认值是ShutdownMode.OnLastWindowClose,它表示当所有应用程序的窗口关闭后隐式的调用ShutDown方法关闭程序。

2016-06-07 10:41:43 827

翻译 #52 – Defining and Using Application-Scoped Resources(定义和使用整个应用程序域内资源)

如果你需要资源在整个WPF应用程序范围内都可以使用,可以让资源和整个应用程序。你可以定义一个作用域为整个应用程序(application-scoped )的资源在应用程序的XAML文件中(App.xaml)。

2016-06-06 18:54:12 321

翻译 #50 – Application-Scoped Properties(作用在应用程序域内的属性)

在Application类中,有一个IDictionary 类型的属性叫做Properties,它可以存储一对(关键字/值)。你可以用这个字典属性存储任意需要在整个Application范围内使用的属性。我们可以通过处理Application.DispatcherUnhandledException 事件来解决这类异常。

2016-06-06 14:58:08 437

翻译 #49 – Unhandled Exceptions(未处理的异常)

当一个在代码中没有处理的异常在WPF应用程序中抛出的时候,会导致一个未处理的异常并且程序强制退出。这会导致窗口出现下面类似的画面:当它发生的时候,程序会立刻退出,用户根本没有机会保存未完成的工作,并且用户无法获得其它有用的信息。总之,程序崩溃。我们可以通过处理Application.DispatcherUnhandledException 事件来解决这类异常。

2016-06-03 17:59:20 1302

翻译 #28 – DispatcherObject

DispatcherObject类表示一个与分配器(Dispatcher)有关联的Object。分配器在一个特定的线程上掌管着一个请求队列。它可以在与之相关联的线程上调用方法。DispatcherObject是所有与分配器相关的类的基类,并与创建它的线程关联到一起。

2016-06-03 09:34:21 515

翻译 #18 – Silverlight and WPF Differences(Silverlight和WPF的区别)

Silverlight原名为WPF/E(WPF/Everywhere),强调Silverlight跟WPF一样有相同的程序设计模型和使用许多相同的控件,但是它却是基于通过浏览器下载并期望运行在外部多种平台上的客户端运行库。下面介绍WPF和Silverlight的核心区别。

2016-06-02 18:20:01 605

翻译 #16 – Use Direct3D For Hard-Core 3D Applications

原文地址:https://wpf.2000things.com/2010/07/28/16-use-direct3d-for-hard-core-3d-applications/虽然WPF支持绘制3D,但是在需要WPF所不支持的3D功能或者最大性能进行3D绘图的时候还是需要使用Direct3D。(毕竟WPF并不是专们用于3D绘图)WPF 4.0基于 DirectX 9,因此它不

2016-06-02 17:44:51 625

翻译 #14 – Page-Based Navigation(基于网页的应用程序)

WPF应用程序可以由一系列的网页构成。这和许多显示一个主窗口,然后弹出对话框和弹出框的传统的应用程序不同。创建一个基于网页的应用程序,你可以使用Page类的实例替代Window作为最高级元素。

2016-06-02 17:13:31 476

转载 XAML转意字符(转载)

XAML特殊字符 此部分只限制在XAML中,代码中不受此类限制。  1、特殊字符转义 XAML 特殊字符转义特殊字符转义小于号 <大于号 >>取址符 &&引号 "&quot

2016-06-02 17:07:56 882

翻译 #5 – Vector Graphics and Resolution Independence(矢量图与像素无关)

在WPF里,渲染图界面使用的是向量图而非位图。不管是内置的控件还是用户自定义的控件。这样你绘制界面元素的时候使用的是基本的图形单元,比如几何图形、线条和多边形等,而不是像位图一样为屏幕上的每一个像素都指定一个值。因为WPF使用的是矢量图,UI元素将通过与设备分辨率无关的方式进行渲染。WPF里面的图形元素的尺寸使用的是与设备无关的单位,每个单位的大小为1/96英寸。这就意味着UI元素将始终以特定的大小尺寸被渲染,而不用收到外部设备DPI的影响。

2016-06-02 10:58:54 738

翻译 #2 – Rendering Tiers(WPF渲染级别)

WPF应用程序会在运行自动检查显卡能力,并分配对应的渲染级别时,以确定那些功能可以被显卡执行。级别0: 没有硬件加速,所有的渲染都通过软件完成级别1: 部分功能硬件加速,DirectX版本>=9.0。硬件加速支持:级别2: 大部分功能使用硬件加速,DirectX版本>=9.0。

2016-06-01 18:25:21 770

翻译 UseLayoutRounding vs. SnapsToDevicePixels

前几天无意中在网上发现一个博客系列《关于WPF你应该知道的2000件事》,是以为叫Sean Sexton的牛人写的。个人觉得很有意思,因此决定找些自己感兴趣的翻译出来。就从曾经困扰我很久的一个SnapsToDevicePixels开始吧。译文如下:#454 – UseLayoutRounding vs. SnapsToDevicePixelsUIElement类有一个控制像素对齐的

2016-06-01 17:48:51 1446

你比我猜,游戏程序(windows)

公司年会的时候需要做一个你比我猜的游戏,于是让我写了一个游戏UI,十分简单,现在分享出来给大家。这个程序需要.Net Framework4

2018-01-31

WPF播放GIF图片源代码

WPF播放GIF项目,里面有实现了一个控件(GIFImage)播放GIF控件,然后在窗体中使用。这个控件可以单独拿出来使用。

2016-09-23

WPF拖曳例子

WPF拖曳例子

2016-06-28

WPF Drag Drop例子

WPF Drag Drop例子

2016-06-28

官方WPF 拖曳例子源代码

官方WPF 拖曳例子

2016-06-28

微软C#无线网络管理库

微软官方C#编写的无线网络管理类库

2016-05-24

电脑报VC++教程

简单易懂的介绍了MFC编程,示例不错,适合新手。

2007-12-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除