• North American Sales: 1-800-231-8588
  • Global Contacts
  • My Account
Infragistics Infragistics
Menu
  • North American Sales: 1-800-321-8588
  • My Account
    • Sign In/Register
  • Design & DevelopmentDesign & Develop
    • Best Value
      Infragistics Ultimate The complete toolkit for building high performing web, mobile and desktop apps.
      Indigo.Design Use a unified platform for visual design, UX prototyping, code generation and application development.
    • Web
      Ignite UI for Angular Ignite UI for JavaScript Ignite UI for React Ultimate UI for ASP.NET Indigo.Design
    • Desktop
      Ultimate UI for Windows Forms Ultimate UI for WPF
      Prototyping
      Indigo.Design
    • Mobile
      Ultimate UI for Xamarin Ultimate UI for iOS Ultimate UI for Android
    • Automated Testing Tools
      Test Automation for Micro Focus UFT: Windows Forms Test Automation for Micro Focus UFT: WPF Test Automation for IBM RFT: Windows Forms
  • UX
    • Indigo.Design Desktop Collaborative prototyping and remote usability testing for UX & usability professionals
    • Indigo.Design A Unified Platform for Visual Design, UX Prototyping, Code Generation, and App Development
  • Business Intelligence
    • Reveal Embedded Accelerate your time to market with powerful, beautiful dashboards into your apps
    • Reveal App Empower everyone in your organization to use data to make smarter business decisions
  • Team Productivity
  • Learn & Support Support
    • Help & Support Documents
    • Blogs
    • Forums
    • Product Ideas
    • Reference Applications
    • Customer Stories
    • Webinars
    • eBook & Whitepapers
    • Events
  • Free Trials
  • Pricing
    • Product Pricing / Buy Online
    • Renew Existing License
    • Contact Us
Windows Forms
  • Product Platforms
  • More
Windows Forms
Windows Forms Performance in the WinTilePanel
  • Blog
  • Files
  • Wiki
  • Members
  • Mentions
  • Tags
  • More
  • Cancel
  • New
Windows Forms requires membership for participation - click to join
  • Windows Forms
  • Best Practices for Placing a DropDown or Combo in an WinGrid Cell
  • Change Color of Column Headers in WinGrid
  • Disable WinGrid Row, Cell or Column with Activation Object
  • Performance in the WinTilePanel
  • Select All Rows in WinGrid Programatically
  • UI Thread Marshaling in the Model Layer
  • Using an WinGrid DataFilter to Convert Strings to Bools (and vice-versa) for a Checkbox Column

Performance in the WinTilePanel

Performance in the WinTilePanel

Due to the nature of the Windows Forms Platform, the WinTilePanel can become slow, choppy, and possibly even unusable if it is used in certain ways.

Transparency

Transparency and alpha-blending can introduce a performance hit to the painting logic of any Control in Windows Forms. This is because transparent Controls are actually opaque, but they first ask their parent control to draw to their Graphics object before the Control paints itself. This gives the illusion of transparency, but it also means that the parent Controls are painting themselves a second time. In the WinTilePanel, there are a few layers of Controls:

 

If the Appearance of WinTilePanel is such that the control will need to use alpha-blending, the WinTilePanel, TileContainerLarge, and TileContainerNormal must all use transparency. So the Form (or other parent control) will first paint. Then when the WinTilePanel paints, it will ask the Form to paint into the Graphics object and then it will paint itself. Similarly, when the TileContainerNormal paints, it will ask the WinTilePanel to paint into the Graphics object, which will first ask the Form to paint. Then the WinTilePanel will paint itself and then the TileContainerNormal will paint itself. The same will occur with the TileContainerLarge.  So for each paint operation, the Form will paint four times and the WinTilePanel will paint three times.

Because of the nature of transparency described above, it is strongly recommended that the WinTilePanel remain opaque. It is also recommended that each WinTile control remain opaque. If the WinTilePanel and its WinTile controls are both using alpha-blending, the entire control will quickly become unusable with only a few tiles.

Large Number of Tiles

The WinTilePanel is managing all tiles during tile drag operations and state change animations. During a state change, every tile must be repositioned and animated. This causes a layout and repaint of the WinTilePanel and TileContainerPanel controls at each step of the animation. Having a large number of controls could cause a noticeable slowdown during animations. If a large number of tiles are to be used in the WinTilePanel, it is recommended that WinTilePanel.AnimationsEnabled is set to False to prevent this choppiness during animations. Some choppiness may still be visible during a user tile drag operation. Also, it is difficult to define the number of tiles that is considered "large." Obviously, using more complex controls in each tile would lower that number and you may start to see choppiness with only five or ten tiles. With very simple controls in each tile, the WinTilePanel may support one hundred or even more tiles.

This article was written by Mike Dour, Lead Developer for WinTilePanel.

  • Share
  • History
  • More
  • Cancel
Related
Recommended