Other layout containers
In addition to the five primary layout panels (Canvas, DockPanel, Grid, StackPanel, and WrapPanel), there are other layout elements that have an effect on how the objects that they contain are arranged. These layout panels, while useful in certain scenarios, are not optimized to support the more robust user interface (UI) scenarios that the primary layout panels are designed to handle elegantly. You can add these other layout panels to your project by using the Assets panel or the layout container button in the Tools panel.
A Popup object (available in the Assets panel) is a window that renders in front of all other content in an application but relative to another object. For example, you can use a pop-up as a context menu for an object to provide additional information and options to users. The Popup object takes a single child object and is positioned based on a target object. By default, a Popup object has a Grid panel as its single child object. You can use the Grid panel to work with multiple child objects inside the Popup object. In most cases, you will not have to directly create a pop-up yourself because you can instead use a control, such as a menu or combo box, that uses a pop-up in its template. A Popup object has a Placement property that you can set in the Properties panel under Layout. The Placement property determines where the pop-up appears relative to the object used to invoke the pop-up.
A ScrollViewer object enables scrolling of the child objects that it contains. It takes only a single child object, so in most cases you will want to use a layout panel such as a StackPanel panel, Canvas panel, or Grid panel inside it. Each time you add a child object to a ScrollViewer object, the new child object will overwrite the existing child object. The ScrollViewer object is used within the templates of other controls, such as list boxes, to support the scrolling of content. When the content inside a ScrollViewer object is too large, you can enable the content to be clipped. You can also control whether scroll bars are disabled, hidden, visible, or automatically shown only when needed.
A UniformGrid object arranges child objects within equal, or uniform, Grid regions. The UniformGrid object is not a variation of the Grid panel; it can be more accurately described as a tiling layout object because it creates equal spacing among the objects that it contains, based on the number of rows and columns you specify. You can specify the number of rows and columns under Common Properties in the Properties panel. As you add child objects to a UniformGrid object, each object is placed in a region starting from upper left to lower right until the UniformGrid is filled. This is useful for a control such as an image list.