WPF核心类图谱

有空列出WPF核心类图谱,如下:​...
阅读(6568) 评论(0)

(一):WPF体系结构

WPF的体系结构一般如下:(MSDN)(维基百科)我们重点介绍下第2张图,它细化了第一张图的内容。整个体系分为3层1.托管WPF层PresentatinFoundation 提供布局、样式、控件、2D、3D、文字、图像、动画、媒体、数据绑定、文档PresentationCore 主要是MIL的托管包装,提供可视化系统,创建可视化树的一些类并负责渲染。比如Visual等核心类CLR 大家熟知的公...
阅读(3699) 评论(0)

WPF知识图

空闲时间我列了下WPF的知识图谱, 如下:...
阅读(3795) 评论(0)

答网友疑问:如何动态设置ItemControl的GroupStyle

首先,要说声对不起,因为我很少看网页里公众号的留言,因此有些都没看到, 或者看到后已经无法回复。今天看到@鱼儿 问到一个问题这个问题一般就是各种Selector来实现, 比如DataTemplateSelector, 或者这次要用到的StyleSelector。具体示例如下:1.在资源中定义不同的Group 的style2.实现后端的GroupStyleSelector3.前端xaml中声明资...
阅读(3075) 评论(1)

WPF中ErrorTemplate导致的空引用at MS.Internal.Controls.TemplatedAdorner.MeasureOverride(Size constraint)

最近遇到一个崩溃,dump信息如下:Object reference not set to an instance of an object.at MS.Internal.Controls.TemplatedAdorner.MeasureOverride(Size constraint)   at System.Windows.FrameworkElement.MeasureCore(Size...
阅读(1285) 评论(0)

WPF中抛出NullReferenceException:System.Windows.Markup.IStyleConnector.Connect(Int32, System.Object)

最近遇到一个情况,应用起来就崩溃, 查看dump信息如下:0:017> !peThe version of SOS does not match the version of CLR you are debugging.  Pleaseload the matching version of SOS for the version of CLR you are debugging.CLR Ve...
阅读(1573) 评论(0)

WPF的TextBox抛出InvalidOperationException异常:Cannot close undo unit because no opened unit exists.

最近遇到一个问题,应用使用过程中突然崩溃,查看dump发现异常信息如下:UI dispatcher has encountered a problem:无法关闭撤消单元,因为不存在已打开的单元。在   at MS.Internal.Documents.UndoManager.Close(IParentUndoUnit unit, UndoCloseAction closeAction)   at ...
阅读(1125) 评论(0)

WPF中的DataGrid的RowDetail显示问题

背景:.net 4.0中的DataGrid如果我们把RowDetail的内容弄的很大, 超出当前屏幕可显示的范围。那么当我们DataGrid按行滚动时,拖到滚动条只能看到下一行,前一行的rowDetail看不见的部分并不会因为拖到滚动条就能看到。原因我们也说了, 因为我们按照行滚动而不是按照像素滚动。解决方案:如果要看到RowDetails,只能按照像素滚动。 但在.net 4.0上,一旦设置...
阅读(2077) 评论(0)

WPF的TreeView执行ExpandSubtree时抛出异常System.NullReferenceException

最近拿到一个dump,有应用崩溃,通过查看dump,异常信息如下:0:012> !peException object: 0000000005187278Exception type:   System.NullReferenceExceptionMessage:          Object reference not set to an instance of an object.Inn...
阅读(2063) 评论(0)

WPF输入框Paste时出错,IDataObject的GetData抛出OutOfMemoryException

现象:客户在使用过程中,在输入框粘贴时,程序崩溃分析:从dump和log看到是:Insufficient memory to continue the execution of the program.   at System.Runtime.InteropServices.ComTypes.IDataObject.GetData(FORMATETC& format, STGMEDIUM& med...
阅读(1083) 评论(0)

ScrollViewer滚动到底来触发加载数据的Behavior

最近项目中遇到加载数据的性能问题, 原因是.net4.0的虚拟化支持不够完成,有好多bug在4.5才修复。 我们只能利用大家通用的做法来延迟加载数据:每次加载固定少量的数据,当拖动到底后,继续加载后续相同数量的数据。思路:监听ScrollViewer的VerticalOffsetProperty,如果值达到允许滚动的高度ScrollableHeight,则发出event通知外部处理加载逻辑。使用方...
阅读(1714) 评论(0)

wpf工程中在Xaml文件下添加多个cs文件

在wpf工程中我们添加一个Window或者UserControl都会建立2个文件, xxx.xaml和xxx.xaml.cs.而且一般cs文件在xaml文件下面。有这样的一个场景,大家都知道这些cs中class都是Partial,我们利用Partial把不同的功能放到不同的cs文件里。但默认创建的cs文件不会在xaml文件下面。解决方法很简单:打开csproj文件, 找到对应的cs文件。 添加De...
阅读(2959) 评论(5)

禁用WPF中DataGrid默认的鼠标左键拖动多选行的效果

最近项目上有需求要做DataGrid的行的拖拽功能, 有个很现实的问题就是鼠标左键按下是拖拽还是多选。查看了DataGrid的源码发现,系统内部会在鼠标按下的时候CaptureMouse,然后设置私有变量来保存多选标志, 在鼠标MouseMove的时候根据变量判断是否多选。 private bool _isDraggingSelection;                            ...
阅读(2550) 评论(0)

WPF中DependencyObject与DependencyProperty的源码简单剖析

Windbg调试WPF的依赖属性中提到了wpf的DependencyObject中DependencyProperty是如何调试查看的。从中我们看出DO(DependencyObject)与 DP(DependencyProperty)一些内部实现。这篇文章我们就从源码入手, 让大家了解下依赖对象中依赖属性的值的获取和赋值。我们先看个DP注册的例子:public class MyStateCont...
阅读(2514) 评论(0)

WPF 后台Render线程崩溃, Exception from HRESULT: 0x88980406

最近遇到一个问题,窗体在Loaded同时Resize会出现黑屏或者直接崩溃, 调查发现是WPF后端的Render线程渲染UI到DirectX时崩溃。硬件环境:WES7 + .Net4.0关于WPF有2个线程的解释如下:WPF 应用程序从两个线程开始:一个用于处理呈现,一个用于管理 UI。呈现线程有效地隐藏在后台运行,而 UI 线程则接收输入、处理事件、绘制屏幕以及运行应用程序代码。遇到的这个问题就...
阅读(1965) 评论(0)
247条 共17页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:608806次
    • 积分:8075
    • 等级:
    • 排名:第2416名
    • 原创:242篇
    • 转载:1篇
    • 译文:1篇
    • 评论:254条
    微信公众号:WPF编程之路
    博客专栏
    最新评论