Ticket S33697
Visible to All Users

Performance.Scrolling - Make the LayoutControl to be a descendant of the XtraScrollableControl class to improve scrolling performance

created 15 years ago
Show previous comments (5)
DevExpress Support Team 5 years ago

    Hi,
    Thank you for sharing your solution. I reviewed it and see that it is very complex and relies on some internal mechanisms which are designed for internal use only and aren't meant to be used in your code.
    As a possible solution, I would recommend creating tabbed groups. For this, you can either use built-in Tabbed Groups or add a new Tab Control to the target form and add separate Layout Controls to each tab page. The latter approach is recommended in the case of a large number of controls as it significantly improves performance.

    Nevertheless, we keep this on our radars and will definitely improve this behavior if we find a reliable solution. Once this is done, we will publish this on our What's New page.

      When I wrote this code originally, it was necessary otherwise my large Layout scenario was unusable.
      Things have improved greatly in LayoutControl since then.
      However, even just six months ago, someone wanted better performance so I posted this to see if it made a difference for them.

      The code involved for scrolling isn't very complex at all.
      The only override in LayoutControlAce is InvalidateRootOffsetControlsAndScrolls() which doesn't alter the default behaviour at all but uses that as the moment to update AutoScrollMinSize on the XtraScrollableControl. And that method is virtual not internal.
      So which internal mechanism are you referring to?

      The WM_MOUSEWHEEL support is also not necessary but it is better than the support currently in the LayoutControl whereby the mouse wheel only scrolls when not over another control - so if you have a large layout - several screens high - and want to scroll through it with the mouse wheel, it works but only as long as another control doesn't scroll under the mouse whereby it stops and you have to move your mouse and try again.

      And what is this suggestion about Tabs?? You are expecting folks to redesign their Layout?

      DevExpress Support Team 5 years ago

        Thank you for the clarification. I understand your situation and agree that the change of the existing layouts can require a lot of work (if your application design permits this at all). Since we haven't found a way to improve the scrolling performance of Layout Control yet, I would like to share some more information on how to improve your application performance.

        If your application design requires displaying many controls simultaneously, you can build the required layout using our TablePanels and StackPanels. By using these controls, you can build quite complex layouts.

        We improved these controls in the upcoming version (20.1). Now, they support auto-size, the ability to temporarily hide specific rows and columns, and some others features.

        Disclaimer: The information provided on DevExpress.com and affiliated web properties (including the DevExpress Support Center) is provided "as is" without warranty of any kind. Developer Express Inc disclaims all warranties, either express or implied, including the warranties of merchantability and fitness for a particular purpose. Please refer to the DevExpress.com Website Terms of Use for more information in this regard.

        Confidential Information: Developer Express Inc does not wish to receive, will not act to procure, nor will it solicit, confidential or proprietary materials and information from you through the DevExpress Support Center or its web properties. Any and all materials or information divulged during chats, email communications, online discussions, Support Center tickets, or made available to Developer Express Inc in any manner will be deemed NOT to be confidential by Developer Express Inc. Please refer to the DevExpress.com Website Terms of Use for more information in this regard.