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 answers
Related Questions in WPF
- Sorting a List by its property renames all the objects in the List
- Can't open new instance of another window in my app, in WPF .NET 8
- Binding forecolour and ToolTip to a DataGrid
- how to create Infinite Upgrades in a clicker game
- Try Catch exception is not catching the unhandled exception
- Assigning an object to another doesn't raise PropertyChanged event in WPF
- Masking input in TextBox
- What should I do if Visual Studio has a restriction on creating files with a long name or a long path to these files?
- reading configuration file (mytest.exe.config)
- WPF Windows Initializing is locking the separated thread in .Net 8
- How to bind to the DataContext ViewModel of another view?
- mouse coordinates in image go below 0 and above width
- WPF pop up is behaving differently in English language PC and Japanese language PC
- Multi level project reference using dll
- Unable to unzip archive .NET framework
Related Questions in OPTIMIZATION
- Optimize LCP ReactJs
- Efficiently processing many small elements of a collection concurrently in Java
- How to convert the size of the HTML document from 68 Kb to the average of 33 Kb?
- Optimizing Memory-Bound Loop with Indirect Prefetching
- Google or-tools soft constraint issue
- How to find function G(x), and make for every x, G(x) always returns fixed point for another function F(G(x))
- Trying to sort a set of words with the information theory to solve Worlde in Python but my program is way to slow
- Do conditional checks cause bottlenecks in Javascript?
- Hourly and annual optimization problem over matrix
- Sending asynchronous requests without a pre-defined task list
- DBT - Using SELECT * in the staging layer
- Using `static` on a AVX2 counter function increases performance ~10x in MT environment without any change in Compiler optimizations
- Is this a GCC optimiser bug or a feature?
- Performance difference between two JavaScript code snippets for comparing arrays of strings
- Distribute a list of positive numbers into a desired number of sets, aiming to have sums as close as possible between them
Related Questions in LOGICAL-TREE
- How to get the parent of a UserControl hosted in a ContentControl?
- WPF: Is every visual tree also a combination of visual and logical trees?
- Check if specified element is already the logical child of another element
- Parsing visual elements inside Content Control : View Model issue
- Use function of logical parent
- Building a logical tree for a custom control
- Disconnecting an element from any/unspecified parent container in WPF
- How to debug a "Specified element is already the logical child of another element" in the release
- Binding a DependencyObject outside the Logical Tree to the property an element in the Logical Tree
- Visual and Logical tree traversal does not retrieve several levels
- Trying to create a recursive method to list Logical dependencies in hierarchical order
- How to attach MenuItem to parent MenuItem in logical and visual trees?
- WPF - PreviewMouseLeftButtonDown finding the visual owning control of e.OriginalSource
- Algorithm for evaluating nested logical expression
- Why does binding fail when binding a child element to another element when the parent succeeds?
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?
Popular Tags
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)
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.