#1,169 – Custom Panel, part I (Measure and Arrange)

You can create a class that derives from Panel in order to create a panel control with custom behavior.  You typically override the following two methods in your custom panel:

  • MeasureOverride – You call Measure method on each child element to determine how much space they need, then return the total space needed
  • ArrangeOverride – You call Arrange method for each child element to position them

Below is a very simple example–a panel that does nothing in either its MeasureOverride or ArrangeOverride methods.  We’ll build on this class in future posts.

    public class MyPanel : Panel
        protected override Size MeasureOverride(Size availableSize)
            Size measuredSize = base.MeasureOverride(availableSize);
            return measuredSize;

        protected override Size ArrangeOverride(Size finalSize)
            Size arrangedSize = base.ArrangeOverride(finalSize);
            return arrangedSize;

If we add children to this panel, they will not be displayed. Below is debug output at run-time. MeasureOverride returns (0,0) because we haven’t calculated any sizes.


About Sean
Software developer in the Twin Cities area, passionate about software development and sailing.

One Response to #1,169 – Custom Panel, part I (Measure and Arrange)

  1. Pingback: Dew Drop – September 30, 2014 (#1866) | Morning Dew

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: