Grids and Panels

Workflow provides a series of grids and panels to use in forms and user display authoring.

Grids are used to precisely position content in rows and columns. Panels are components that control the rendering of other controls; for example, their size and dimensions, their positions, and the arrangement of their child content.

The following topics describe the controls available in the Grids/Panels list.

Grids and Panels Controls Property Usage

The following table shows the properties used by each control:
PropertyBorderCanvasData GridDock PanelGridGrid SplitterInk PresenterStack PanelUniform GridView BoxViewport 3DWrap Panel
AllowDropXXXXXXXXXXXX
AlternatingRowBackgroundX
AlternationCountX
AutomaticX
BackgroundXXXXXXXXXX
BorderBrushXXX
BorderThicknessXXX
CacheModeX
ClipX
ClipToBoundsXXXXXXXXXXX
ColumnXXXXXXXXXXXX
ColumnsX
ColumnSpanXXXXXXXXXXX
ColumnHeaderHeightX
CommandX
CornerRadiusX
CursorX
DataContextX
DragIncrementX
EffectXXXXXXXXXXXX
FlowDirectionXXXXXXXXXXXX
FocusableXXXXXXXXXXX
FocusVisualStyleXXXXXXXXXXX
FontFamilyXX
FontSizeXX
FontStretchXX
FontStyleXX
FontWeightXX
ForceCursorXXXXXXXXXXX
ForegroundXX
GridColumnsX
GridRowsX
GridHeadersVisibleX
GridLinesVisibleX
HeaderBackgroundX
HeaderFontFamilyX
HeaderFontSizeX
HeaderFontWeifhtX
HeaderForegroundX
HeightXXXXXXXXXXXX
HiddenColumnsX
HorizontalAlignmentXXXXXXXXXXXX
HorizontalContentAlignmentXX
HorizontalGridLinesBrushX
InputTableX
IsEnabledXXXXXXXXXXX
IsHitTestVisibleXXXXXXXXXXXX
IsManipulationEnabledXXXXXXXXXXX
IsSharedSizeScopeXXXXXXXXXXX
IsTabStopXX
ItemHeightX
ItemWlidthX
KeyboardIncrementX
LanguageX
LastChildFillX
LocalizationXXXXXXXXXXXX
MarginXXXXXXXXXXXX
MaxColumnWidthX
MaxHeightXXXXXXXXXXXX
MaxWidthXXXXXXXXXXXX
MinColumnWidthX
MinHeightXXXXXXXXXXXX
MinWidthXXXXXXXXXXXX
NameXXXXXXXXXXXX
OpacityXXXXXXXXXXXX
OpacityMaskXXXXXXXXXXXX
OrientationXX
OverridesDefaultStyleXXXXXXXXXXX
PaddingXXX
PixelX
PreviewStyleX
ProjectionX
RenderTransformX
RenderTransformOriginXXXXXXXXXXXX
ResizeBehaviorX
ResizeDirectionX
RowXXXXXXXXXXXX
RowsX
RowBackgroundXX
RowHeaderWidthX
RowHeightX
RowSpanXXXXXXXXXXX
SelectedRowsX
ShowGridLinesX
ShowsPreviewX
SnapsToDevicePixelsXXXXXXXXXXX
Star (relational)X
StretchX
StretchDirectionX
StrokesX
StyleXXXXXXXXXXXX
TabIndexXX
TagXXXXXXXXXXXX
TemplateXX
ToolTipXXXXXXXXXXXX
UidXXXXXXXXXXX
UseLayoutRoundingXXXXXXXXXXXX
VerticalAlignmentXXXXXXXXXXXX
VerticalContentAlignmentXX
VerticalGridLinesBrushX
VisibilityXXXXXXXXXXXX
WidthXXXXXXXXXXXX

Grids and Panels Controls Property Descriptions

The following table shows the properties descriptions used by all control:
PropertyDescription
AllowDropSelect this check box to indicate that the control can accept data that is dragged onto it.
AlternatingRowBackgroundExpand this field to select the background color to display on alternating rows.
AlternationCountSpecifies the number of alternating item containers or rows to display.
AutomaticThe selected row or column automatically resizes to the width or height of the cell’s largest object.
Note: This setting should be used only after objects are placed within the grid cells. This allows the row or column to properly resize with its child objects. If a row or column is empty and set to automatic sizing, it collapses.
ArrowBackgroundExpand this field to select the background color for an arrow button control.
ArrowBorderBrushExpand this field to select the border color of the selected arrow control.
ArrowDesignSpecifies the appearance of the arrow. Available selections are:
  • Pointer
  • Barbed
  • Triangle
ArrowDirectionSpecifies the direction of the arrow. Available selections are:
  • Up
  • Down
  • Right
  • Left
ArrowPaddingSpecifies the horizontal and vertical alignment of the arrow within the button.
BackgroundExpand this field to select the background color of the selected control.
BorderBrushExpand this field to select the border color of the selected control.
BorderThicknessSpecifies the border thickness of a control, in pixels.
CacheModeSpecifies a value that indicates that rendered content should be cached when possible.
CalendarButtonStyleSpecifies the style of the calendar's buttons.
ClipSpecifies the geometric shape used to define the outline of the image. Selections are:
  • Hover
  • Press
  • Release
ClipToBoundsSelect this check box to clip the content of this control (or content coming from the child elements of this control) to fit into the size of the containing control.
ColumnSpecifies the column within the grid where the control is located.
ColumnsSpecifies the number of columns in the grid.
ColumnSpanSpecifies the total number of columns that child content spans within a grid.
ColumnHeaderHeightSpecifies the height of the column header row, in pixels. The default is 20 pixels.
CommandSpecifies the command to invoke when this control is pressed or clicked.
CornerRadiusSpecifies the degree to which the corners of a control are rounded.
CursorSpecifies the cursor image to display when the mouse pointer hovers over an object.
DataContextSpecifies the data context for a control when it participates in data binding.
DragIncrementSpecifies the minimum distance that you must drag a mouse to resize rows or columns.
EffectClick the arrow to expand the property, select the effect you want to apply to the control, and then configure the specific values for the effect. Valid values to select are:
  • Blur
    • Kernel Type
    • Radius
  • Drop Shadow
    • Color
    • Direction
    • Opactiy
    • Shadow Depth
FlowDirectionSpecifies the direction that text and other user interface (UI) elements flow within any parent control. Selections are:
  • Left to Right
  • Right to Left
FocusableSelect this check box to indicate that the control can receive focus.
FocusVisualStyleSpecifies a property that enables customization of appearance, effects, or other style characteristics that apply to this control when it has focus.
FontFamilySpecifies the font family for the control.
FontSizeSpecifies the font size for the control.
FontStretchSpecifies the degree to which a font is condensed or expanded on the screen.
FontStyleSpecifies the font style for the control.
FontWeightSpecifies the weight or thickness of the specified font.
ForceCursorSelect this check box to indicate that the user interface (UI) renders the cursor as declared by the Cursor property.
ForegroundExpand this field to select the foreground color.
GridColumnsSpecifies the columns for the data grid. The columns are chosen from a list of attributes and specifications derived from the available quality variables.
GridRowsSpecifies the rows for the data grid. The rows are chosen from a list of available quality variables.
GridHeadersVisibleSelect this check box to display the header row in the grid.
GridLinesVisibleSelect this check box to display the grid lines.
HeaderBackgroundExpand this field to select the header background color.
HeaderFontFamilySpecifies the font family for the text in the header.
HeaderFontSizeSpecifies the font size for the text in the header.
HeaderFontWeightSpecfies the font weight for the text in the header.
HeaderForegroundExpand this field to select the header text color.
HeightSpecifies the height of the control, in pixels.
HiddenColumnsSpecifies the column(s) to omit from the displayed grid, separated by a comma. Column numbers start at zero (0). For example, to hide the first, fourth, and sixth columns, enter 0, 3, 5.
HorizontalAlignmentSpecifies the horizontal alignment characteristics applied to this control. Selections are:
  • Left
  • Center
  • Right
  • Stretch
HorizontalContentAlignmentSpecifies the horizontal alignment of the control's content. Selections are:
  • Left
  • Center
  • Right
  • Stretch
HorizontalGridLinesBrushExpand this field to select the color for the horizontal grid lines. The default is black.
InputTableSpecifies the table to display in the grid. The InputTable can be defined in a number of ways: in code behind, configured from a data item, or passed in from a workflow (that is, either created in the workflow itself or passed in from an Historian read, which return a DataTable).
IsEnabledSelect this check box to indicate that this control is enabled in the user interface (UI).
IsHitTestVisibleSelect this check box to indicate that the control can possibly be returned as a hit test result from some portion of its rendered content.
IsManipulationEnabledSelect this check box to indicate that the manipulation events for the control are enabled.
IsSharedSizeScopeSelect this check box to indicate that controls are sharing size information.
IsTabStopSelect this check box to indicate that a control is included in tab navigation.
ItemHeightSpecifies the height of all items contained within a Wrap Panel.
ItemWidthSpecifies the width of all items contained within a Wrap Panel.
KeyboardIncrementSpecifies the distance that each press of an arrow key moves a Grid Splitter control.
LanguageSpecifies the localization language that applies to an object.
LastChildFillSelect this check box to indicate that the last child control within a Dock Panel stretches to fill the remaining available space.
LocalizationClick the ellipsis button to open the Localization Configuration dialog box where you can configure the property to localize, the language to use for localization, and the text to localize.
MarginSpecifies the outer margin of a control.
MaxColumnWidthSpecifies the maximum width of the columns and headers in the grid.
MaxHeightSpecifies the maximum height of a control.
MaxWidthSpecifies the maximum width of a control.
MinColumnWidthSpecifies the minimum width of the columns and headers in the grid.
MinHeightSpecifies the minimum height of a control.
MinWidthSpecifies the minimum width of a control.
NameSpecifies the identifying name of the control. The name provides a reference so that code behind, such as event handler code, can refer to a markup element during processing by a XAML processor.
OpacitySpecifies the opacity factor applied to the entire control. Valid values are 0 through 1, with up to 15 decimal places.
OpacityMaskExpand this field to select a color for the opacity mask, which is applied to any alpha-channel masking for the rendered content of this control.
OrientationSpecifies the orientation of a control. Selections are:
  • Portrait
  • Landscape
OverridesDefaultStyleSelect this check box to indicate that this control incorporates style properties from theme styles.
PaddingSpecifies the amount of padding to apply to the inside edge of each side of a control.
PixelThe selected row or column in the grid becomes a fixed size and remains fixed even if the grid is resized.
PreviewStyleSpecifies the style that customizes the appearance, effects, or other style characteristics for the Grid Splitter control preview indicator that displays when the ShowsPreview property is set to True.
ProjectionSpecifies the 3-D effect to apply to the current object.
RenderTransformSpecifies the transform information that affects the rendering position of an object.
RenderTransformOriginSpecifies the center point of any possible render transform, relative to the bounds of the element.
  • X is the horizontal origin factor, given as a value between 0 and 1.
  • Y is the vertical origin factor, given as a value between 0 and 1.
ResizeBehaviorSpecifies the columns or rows that are resized relative to the column or row the GridSplitter control is defined for. Valid selections are:
  • Based On Alignment
  • Current and Next
  • Previous and Current
  • Previous and Next
ResizeDirectionSpecifies whether the GridSplitter control resizes rows or columns. Valid selections are:
  • Auto
  • Columns
  • Rows
RowSpecifies the row background.
RowsSpecifies the number of rows in the grid.
RowBackgroundExpand this field to select the background color for the row.
RowHeaderWidthSpecifies the width of the row header column.
RowHeightSpecifies the default height for all rows.
RowSpanSpecifies the total number of rows that child content spans within a grid.
SelectedRowsSpecifies the selected row(s) as a new table.
ShowGridLinesSelect this check box to indicate that grid lines are visible within this grid.
ShowsPreviewSelect this check box to indicate that the Grid Splitter control updates the column or row size as the control is dragged.
SnapsToDevicePixelsSelect this check box to indicate that rendering for this control uses device-specific pixel settings.
Star (relatonal)

A row or column height or width set to relational sizing becomes a proportional size.

Star values are ratios calculated from the remaining available space in the grid and are subject to a certain hierarchy. The total available space in a grid is allocated first to rows and columns with fixed pixel row height / column width. Then, space is allocated to rows and columns that are set to automatically size. Finally, rows and columns with relational heights and widths share a percentage of the grid's remaining space.

For example, consider a grid with two columns that is 1000 pixels in width. One column has a fixed size of 100 pixels; the other column is set to relational sizing.

In order to determine the available space for the relational column, subtract the width of the column set in pixels from the total width of the grid (in pixels): 1000 - 100 = 900 pixels of remaining space.

Since the default star value is 1, it is easy to calculate the number of pixels per star in this example. Pixels per star are calculated by dividing the total available width (in pixels) by the total number of star values in the grid: 900 ÷ 1 = 900 pixels per star.

Therefore, the size of the relational column is 900 pixels (900 pixels x 1 star).

Now consider if a third column is added with a star value of 2. The grid still has 900 pixels of remaining available space, but now the star values total 3 (1 star from the first relational column, 2 stars from the new column): 900 ÷ 3 = 300 pixels per star.

Therefore the first relational column is now a size of 300 pixels (300 pixels x 1 star) and the new column is a size of 600 pixels (300 pixels x 2 stars).

The grid's child objects inherit a number of attached dependency properties. The Row and Column properties specify the starting row and column that displays the object. RowSpan and Column Span show the number of cells the object spans, either vertically or horizontally. And, the Margin property specifies the amount of unused space, in pixels, between the grid cell lines and the object.

StretchSpecifies how an Image stretches to fill the destination rectangle. Selections are:
  • Fill
  • None (does not apply to Scale Box)
  • Uniform (does not apply to Scale Box)
  • UniformFill (does not apply to Scale Box)
StretchDirectionSpecifies how the image is scaled. Selections are:
  • Vertical
  • Horizontal
StrokesSpecifies the strokes that the control displays.
StyleSpecifies the style used by this control when it is rendered.
TabIndexSpecifies the order in which controls receive focus when the Tab key is pressed.
TagSpecifies an arbitrary object value that can be used to store custom information about this control.
TemplateClick the ellipsis button to open the Open dialog box to select a template to use.
ToolTipSpecifies the tool-tip that displays for this control in the user interface (UI).
UidSpecifies the unique identifier (for localization) for this control.
UseLayoutRoundingSpecifies a value that determines whether rendering for the object and its visual subtree should use rounding behavior that aligns rendering to whole pixels.
VerticalAlignmentSpecifies the vertical alignment characteristics applied to this control. Selections are:
  • Bottom
  • Center
  • Top
  • Stretch
VerticalContentAlignmentSpecifies the vertical alignment of the control's content. Selections are:
  • Bottom
  • Center
  • Top
  • Stretch
VerticalGridLinesBrushSpecifies the color used to draw the vertical grid lines. The default is black.
VisiblilitySpecifies the visibility of this control. Selections are:
  • Collapsed
  • Hidden
  • Visible
WidthSpecifies the width of the control, in pixels.