ARTICLE

Layout Panel in WPF: Part 1

Posted by Manish Tewatia Articles | WPF using VB.NET August 27, 2010
In this article I will explain about the layout and panels in WPF.
 
Reader Level:

In WPF when you create an application the container has its own layout logic like one can stack the element and other arrange them in a grid etc. The layout panels basically use to avoid the common pitfalls means the arranging of layout of the controls of an application is based on fixed pixel coordinates which is work in a limited environment, if you want to use it on different screen resolution or with different font sizes it fails.

In WPF "How to lay out the application's controls ?" this question is most important at the design time of a WPF application. In WPF control placement is facilitated  through a number of layout elements and the goal is making sure that your layout can adapt itself gracefully to different windows sizes.

Panel and layout works simultaneously we use panel class like in WPF we have so many panel-derived classes which we used to arrange layout of the controls. As you know a class has to be in some namespace. So, the panel-derived classes founds in the "System.Windows.Controls" namespace. Now lets talk about the different layout panels, the following are the most common layout panels:

  1. StackPanel

  2. WrapPanel

  3. DockPanel

  4. Grid

  5. UniformGrid

  6. Canvas

Now let the brief introduction of above mentioned  panels step by step:

  • StackPanel: StackPanel is one of the simplest layout containers. It stacks all its child element "according its own orientation" below or beside each other. This layout container is used for small section of a larger, more complex window like all WPF ItemsControls (ComboBox,ListBox,Menu) use a StackPanel as their internal layout panel. Basically it involves two main types of placing controls, vertical or horizontal. The given example will more clear you the StackPanel concept:

Example: Create a window, which contain five vertical child buttons.

The code you need to write is:

    <Window x:Class="Layout.SimpleStack"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Layout" Height="223" Width="354"
    >
        <
StackPanel>
            <
Label>Which color you want</Label>
            <
Button>Red</Button>
            <
Button>Blue</Button>
            <
Button>Pink</Button>
            <
Button>Green</Button>
            <
Button>Black</Button>
        </
StackPanel>
    </
Window>

Output window

1.gif

Example: Create a window, which contain five horizontal child buttons.

The code you need to write is:

    <Window x:Class="Layout.SimpleStack"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Layout" Height="223" Width="354"
    >
        <
StackPanel Orientation="Horizontal">
            <
Label>Which color you want</Label>
            <
Button>Red</Button>
            <
Button>Blue</Button>
            <
Button>Pink</Button>
            <
Button>Green</Button>
            <
Button>Black</Button>
        </
StackPanel>
    </
Window>

Output window

2.gif

Conclusion

I hope this part of my article helps you to clearing StackPanel concept. Next part is about the WrapPanel and DockPanel.

Login to add your contents and source code to this article
share this article :
post comment
 
Team Foundation Server Hosting
Become a Sponsor
PREMIUM SPONSORS
  • Finally – a virtual platform that delivers next-generation Windows Server 2008 Hyper-V virtualization technology from a managed hosting partner you can truly depend on. Visit www.maximumasp.com/max for a FREE 30 day trial. Hurry offer ends soon. Climb aboard the MaxV platform and take advantage of High Availability, Intelligent Monitoring, Recurrent Backups, and Scalability – with no hassle or hidden fees. As a managed hosting partner focused solely on Microsoft technologies since 2000, MaximumASP is uniquely qualified to provide the superior support that our business is built on. Unparalleled expertise with Microsoft technologies lead to working directly with Microsoft as first to offer IIS 7 and SQL 2008 betas in a hosted environment; partnering in the Go Live Program for Hyper-V; and product co-launches built on WS 2008 with Hyper-V technology.
    Get 2 Months Free of ASP.NET Hosting for Only $4.95/month! Receive FREE MS SQL and MySQL Databases Including ASP.NET 4/3.5, MVC 3.0, Silverlight 4, Windows 2008/IIS 7.0 Plus FREE IIS 7 Modules. Host UNLIMITED ASP.NET Web Sites - Click Here!
Become a Sponsor