Recently I was trying to debug into one mysterious issue where the DockManager from DevExpress is so slow when certain theme is applied.
And I have noticed that there are hotspot such as AddLogicalTree and RemoveLogicalChild on the performance counter.
Below is a analysis on the result of analysis.
When I drap out a window from the dock manager and put that into a floating group, what I have observed is that first
1. RemoveLogicalChild is called on its existing logical parent (I blieve that the DockingManager must have certains groups such as FloatingGroup and DockingGroup so that each item/tab falls part of ..)
Where then the detached item will be added into a new container, and the AddLogicalChild is called.
and then this Item will be boxed into a new group, which you will see again the AddLogicalChild called again.
Also, as I noticed that when a Item detached from the DockingManager and become part of the floating window, you will see the WndProc will be invoked.
so the analysis of the result is that extensively uses of the styling through template. Where the logicalTree adding/removing will trigger a huge amount of recalculationg - creating those VisualElement and others will severely bog down the performance. - As that Styling through the Template can be confirmed though this MSDN page - FrameworkElement.AddLogicalChild. method.
And this has posed a very interesting question, how do you get the styling done whiles keep the performance.
相关推荐
gong-wpf-dragdrop, GongSolutions.WPF.DragDrop 库是WPF的拖动'n'拖放框架 简介GongSolutions.WPF.DragDrop 库是一个易于使用的拖拉'n'拖放框架。特性使用 MVVM: 拖放逻辑可以放在ViewModel中。 代码不需要放在in中...
**WPF-Blockly** 是一个基于Windows Presentation Foundation (WPF) 的图形化编程工具,它为用户提供了构建和设计程序的直观界面。WPF作为Microsoft .NET Framework的一部分,主要用于构建桌面应用程序,它提供了...
标题中的“c#/WPF-VLC播放器demo 32/64位”表明这是一个示例项目,展示了如何在C# WPF应用中使用VLC,同时考虑到了不同体系结构的兼容性。这通常是通过使用支持两种架构的VLC库来实现的,因为默认的VLC库可能只针对...
在这个名为"WPF-ControlBase-master.zip"的压缩包中,我们可以推测它包含了一个基于WPF的控制库项目,可能是一个开源或者个人开发的项目,用于提供自定义的WPF控件。这些控件可能是对标准WPF控件的扩展或增强,也...
C#开发WPF-Silverlight动画及游戏系列教程-深蓝色右手 C#开发WPF-Silverlight动画及游戏系列教程-深蓝色右手 C#开发WPF-Silverlight动画及游戏系列教程-深蓝色右手
WPF的基本空间历程,使用.net core3.0.1版本
http://www.codeproject.com/Articles/22952/WPF-Diagram-Designer-Part-1 http://www.codeproject.com/Articles/23265/WPF-Diagram-Designer-Part-2 ...
Bootstrap-WPF 样式是一种将流行的前端框架 Bootstrap 的设计风格应用于 WPF(Windows Presentation Foundation)应用程序的方法。Bootstrap 是一个广泛使用的开源工具包,主要用于构建响应式、移动设备优先的网页...
在本文中,我们将深入探讨如何在Windows Presentation Foundation (WPF) 中使用3D技术来创建交互式的物体事件处理实例,具体以实现一个茶壶模型为例。WPF是Microsoft .NET Framework的一部分,它提供了丰富的功能来...
通过深入研究WPF-Diagram-Designer的源代码(如WPF-Diagram-Designer-master文件夹中的内容),开发者不仅可以学习到如何在WPF中构建复杂的图形界面,还可以了解到图形编辑器的设计原理和实现细节,对于提升图形应用...
【标题】"WPF-JJDown-v1.234.0" 提示我们这是一个基于Windows Presentation Foundation(WPF)的应用程序,名为JJDown。版本号v1.234.0表明这是该软件的第1次重大更新,第234次次要更新或修复。这通常意味着它经历了...
标题"Wpf-TcpC_wpfTCP_TCP聊天室_WPF_tcpc协议_wantq3w_"中,关键词"wpfTCP"、"TCP聊天室"、"WPF"和"tcpc协议"揭示了项目的核心内容。这应该是一个使用WPF(Windows Presentation Foundation)技术构建的TCP聊天室...
**WPF - 强大的图表技术** Windows Presentation Foundation (WPF) 是Microsoft开发的一个用于构建桌面应用程序的框架,它提供了丰富的图形系统,包括对2D和3D图形的强大支持。在WPF中,开发人员可以利用各种图表...
在本文中,我们将深入探讨如何在Windows Presentation Foundation (WPF) 中创建一个用户控件,以实现类似QQ登录页面上那种动态蠕动的色块效果。这个效果通常用于视觉反馈,给用户带来一种生动且有趣的交互体验。我们...
“wpf---StatusBar”这个标题表明我们将探讨的是WPF(Windows Presentation Foundation)框架中的StatusBar组件。WPF是.NET Framework的一部分,用于构建桌面应用程序,它提供了丰富的用户界面(UI)功能。StatusBar...
该资源"practical-wpf-charts-graphics-master.rar"包含了这本书的源代码,为读者提供了丰富的实践案例和深入理解WPF图表及图形编程的宝贵材料。 WPF(Windows Presentation Foundation)是.NET Framework的一部分...
在这个“wpf-datagrid-access DB”主题中,我们将深入探讨如何利用WPF Datagrid与Microsoft Access数据库进行交互,实现数据的读取、更新和保存。 1. **WPF Datagrid简介** - Datagrid是WPF中的一个数据展示控件,...
**WPF TreeView 控件详解** 在Windows Presentation Foundation (WPF)中,`TreeView`控件是一个非常重要的组件,用于展示层次化的数据结构。它允许用户以树形视图的形式查看和操作数据,广泛应用于文件系统浏览、...
C#开发WPF-Silverlight动画及游戏系列教程-深蓝色右手 C#开发WPF-Silverlight动画及游戏系列教程-深蓝色右手 C#开发WPF-Silverlight动画及游戏系列教程-深蓝色右手