I've been profiling my application and finding that a lot of the delays are due to the WPF initializations. I've found an article on WPF optimization saying that building a logical tree top-down will have better performance than if it were built bottom-up. The example in the article is in C#. I'm wondering, when the UI is done in XAML, how is it building the tree?
WPF optimization: logical trees in xaml, how are they being built?
1.5k Views Asked by Dan Vogel At
1
There are 1 best solutions below
Related Questions in WPF
- WPF MessageBox Cancel checkbox check
- WPF multiple control property simultaneous changes
- ObservableCollection.CollectionChanged does not select the correct DataTemplate on ToolBar
- Telerik's WPF RadColorPicker NoColorText property not working
- How to automate UI interaction during acceptance test run
- Binding to "this.property" object in VisualStateMenager
- ContextMenu Closes Immediately
- Update ObservableCollection where the items are received from another List
- change content button with trigger
- WPF - How to highlight a combobox border when focused
- Wpf No Highlight on ListBoxItem for Touch Devices
- WPF WebBrowser how best to get Tag trees
- Make a class suitable for Property Change Notification
- WPF Comparing two datatables to find matching values
- how to create folder and file with datetime in wpf application
Related Questions in OPTIMIZATION
- Does compiler optimize operation on const variable and literal const number?
- Optimizing for Social Leaderboards
- 3D FFT with data larger than cache
- Optimum directory structure for large number of files to display on a page
- How to make faster queries on my mysql table?
- Xib taking long time (>1s) to load. UIFont cache seems to blame
- How to speed up string comparisons in an array with a for loop?
- How to load all symbols from shared library on start up?
- Cython speed vs numpy
- Improve Speed of Piecewise Function in MATLAB
- How to check that all values are equal in array using recursion?
- PHP split string into known tokens and remaining words add to single-worded array
- Python: why is my O(n) slowing down as it progresses?
- Hint indexes to mysql on Join
- Error When Compiler Optimizations are on
Related Questions in LOGICAL-TREE
- Binding a DependencyObject outside the Logical Tree to the property an element in the Logical Tree
- How to debug a "Specified element is already the logical child of another element" in the release
- Find logical child including hidden and collapsed nodes
- Check if specified element is already the logical child of another element
- Concepts of Visual tree and Logical tree
- WPF - PreviewMouseLeftButtonDown finding the visual owning control of e.OriginalSource
- How to attach MenuItem to parent MenuItem in logical and visual trees?
- Trying to create a recursive method to list Logical dependencies in hierarchical order
- Visual and Logical tree traversal does not retrieve several levels
- How to get the parent of a UserControl hosted in a ContentControl?
- WPF: Why is DataContextChanged not raised on a logical child?
- Binding ElementName. Does it use Visual Tree or Logical Tree
- WPF optimization: logical trees in xaml, how are they being built?
- Why does binding fail when binding a child element to another element when the parent succeeds?
- Algorithm for evaluating nested logical expression
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
When it is done in XAML, it is done top down.
This article refers to building a tree from code. You want to add top level elements, then children, then their children and so on. If you add the children first, then parent elements, then their parent elements, and so on, you will incur a major performance cost due to invalidation of all children in the tree instead of just the path back to the root through each parent.