Click or drag to resize
DigitalRuneWindow Class
Provides the ability to create, configure, show, and manage the lifetime of windows and dialog boxes.
Inheritance Hierarchy

Namespace: DigitalRune.Game.UI.Controls
Assembly: DigitalRune.Game.UI (in DigitalRune.Game.UI.dll) Version: 1.8.0.0 (1.8.0.14553)
Syntax
public class Window : ContentControl

The Window type exposes the following members.

Constructors
  NameDescription
Public methodWindow
Initializes a new instance of the Window class.
Top
Methods
  NameDescription
Public methodActivate
Activates this window (and deactivates all other windows).
Public methodArrange
Positions child elements and determines a size for a control.
(Inherited from UIControl.)
Public methodBringIntoView
Attempts to bring this element into view, within any scrollable regions it is contained within.
(Inherited from UIControl.)
Public methodClose
Closes this window.
Public methodEquals
Determines whether the specified Object is equal to the current Object.
(Inherited from Object.)
Protected methodFinalize
Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object.)
Public methodFocus
Moves the input focus to this control.
(Inherited from UIControl.)
Public methodGetControl
Gets a control by name from the visual subtree of this control.
(Inherited from UIControl.)
Public methodGetHashCode
Serves as a hash function for a particular type.
(Inherited from Object.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodGetValueT(Int32)
Gets the value of the property with the given ID.
(Inherited from GameObject.)
Public methodGetValueT(String)
Gets the value of the property with the given name.
(Inherited from GameObject.)
Public methodGetValueT(GamePropertyMetadataT)
Gets the value of the property with the given metadata.
(Inherited from GameObject.)
Public methodStatic memberGetWindow
Gets the window that contains the given control.
Protected methodHitTest
Tests if a position is over a control.
(Inherited from ContentControl.)
Public methodInvalidateArrange
Invalidates the arrange state (layout) for the control.
(Inherited from UIControl.)
Public methodInvalidateMeasure
Invalidates the measurement state (layout) for the control.
(Inherited from UIControl.)
Public methodInvalidateVisual
Invalidates the cached RenderData.
(Inherited from UIControl.)
Public methodLoad
Loads the content of the game object.
(Inherited from GameObject.)
Public methodMeasure
Updates the DesiredWidth and DesiredHeight of the control.
(Inherited from UIControl.)
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodNewFrame
Tells the game object to prepare itself for the next time step.
(Inherited from GameObject.)
Protected methodOnArrange
Called by Arrange(Vector2F, Vector2F) to arrange the visual children.
(Inherited from ContentControl.)
Protected methodOnContentChanged
Called when the Content was exchanged.
(Inherited from ContentControl.)
Protected methodOnHandleInput
Called when the control should handle device input.
(Overrides UIControlOnHandleInput(InputContext).)
Protected methodOnLoad
Called when the game object should load its content.
(Overrides UIControlOnLoad.)
Protected methodOnMeasure
Called by Measure(Vector2F) to compute the control-specific desired size.
(Inherited from ContentControl.)
Protected methodOnPropertyChanged(PropertyChangedEventArgs)
Raises the PropertyChanged event.
(Inherited from GameObject.)
Protected methodOnPropertyChangedT(GamePropertyT, T, T)
Is called after a game object property was changed.
(Inherited from GameObject.)
Protected methodOnPropertyChangedT(GamePropertyT, T, T)
Is called after a game object property was changed.
(Inherited from UIControl.)
Protected methodOnRender
Called when the control and its visual children should be rendered.
(Inherited from UIControl.)
Protected methodOnTemplateChanged
Raises the TemplateChanged event.
(Inherited from ContentControl.)
Protected methodOnUnload
Called when the game object should unload its content.
(Overrides UIControlOnUnload.)
Protected methodOnUpdate
Called when the game object should be updated.
(Inherited from UIControl.)
Public methodRender
Renders the control (including visual children).
(Inherited from UIControl.)
Public methodSetValueT(Int32, T)
Sets the value of the property with the given ID.
(Inherited from GameObject.)
Public methodSetValueT(String, T)
Sets the value of the property with the given name.
(Inherited from GameObject.)
Public methodSetValueT(GamePropertyMetadataT, T)
Set the value of the property for the given metadata.
(Inherited from GameObject.)
Public methodShow
Opens a window and returns without waiting for the newly opened window to close.
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Public methodUnload
Unloads the content of the game object.
(Inherited from GameObject.)
Public methodUpdate
Updates this game object.
(Inherited from GameObject.)
Public methodUpdateLayout
Ensures that all visual child controls of this element are properly updated for layout.
(Inherited from UIControl.)
Top
Extension Methods
  NameDescription
Public Extension MethodGetAncestors
Gets the ancestors of the control in the visual tree.
(Defined by UIHelper.)
Public Extension MethodGetDescendantsOverloaded.
Gets the descendants of the control in the visual tree using a depth-first search.
(Defined by UIHelper.)
Public Extension MethodGetDescendants(Boolean)Overloaded.
Gets the descendants of the control in the visual tree using either a depth-first or a breadth-first search.
(Defined by UIHelper.)
Public Extension MethodGetLeaves
Gets the leaves of the control in the visual tree.
(Defined by UIHelper.)
Public Extension MethodGetRoot
Returns the root control of the visual tree.
(Defined by UIHelper.)
Public Extension MethodGetSelfAndAncestors
Gets the control and its ancestors in the visual tree.
(Defined by UIHelper.)
Public Extension MethodGetSubtreeOverloaded.
Gets the subtree (the given control and all of its descendants in the visual tree) using a depth-first search.
(Defined by UIHelper.)
Public Extension MethodGetSubtree(Boolean)Overloaded.
Gets the subtree (the given control and all of its descendants in the visual tree) using either a depth-first or a breadth-first search.
(Defined by UIHelper.)
Top
Fields
  NameDescription
Public fieldStatic memberCanDragPropertyId
The ID of the CanDrag game object property.
Public fieldStatic memberCanResizePropertyId
The ID of the CanResize game object property.
Public fieldStatic memberCloseButtonStylePropertyId
The ID of the CloseButtonStyle game object property.
Public fieldStatic memberClosedEventId
The ID of the Closed game object event.
Public fieldStatic memberClosingEventId
The ID of the Closing game object event.
Public fieldStatic memberDialogResultPropertyId
The ID of the DialogResult game object property.
Public fieldStatic memberHideOnClosePropertyId
The ID of the HideOnClose game object property.
Public fieldStatic memberIconPropertyId
The ID of the Icon game object property.
Public fieldStatic memberIconSourceRectanglePropertyId
The ID of the IconSourceRectangle game object property.
Public fieldStatic memberIconStylePropertyId
The ID of the IconStyle game object property.
Public fieldStatic memberIsActivePropertyId
The ID of the IsActive game object property.
Public fieldStatic memberIsModalPropertyId
The ID of the IsModal game object property.
Public fieldStatic memberResizeBorderPropertyId
The ID of the ResizeBorder game object property.
Public fieldStatic memberTitlePropertyId
The ID of the Title game object property.
Public fieldStatic memberTitleTextBlockStylePropertyId
The ID of the TitleTextBlockStyle game object property.
Top
Properties
  NameDescription
Public propertyActualBounds
Gets the actual bounding rectangle of the control (defined by ActualX, ActualY, ActualWidth and ActualHeight).
(Inherited from UIControl.)
Public propertyActualHeight
Gets the actual height of the control (computed in Arrange(Vector2F, Vector2F)).
(Inherited from UIControl.)
Public propertyActualIsEnabled
Gets a value indicating whether this control is actually enabled, taking into account the IsEnabled flag and the state of the VisualParent.
(Inherited from UIControl.)
Public propertyActualIsVisible
Gets a value indicating whether this control is actually visible, taking into account the IsVisible flag and the state of the VisualParent.
(Inherited from UIControl.)
Public propertyActualWidth
Gets the actual width of the control (computed in Arrange(Vector2F, Vector2F)).
(Inherited from UIControl.)
Public propertyActualX
Gets the actual X position of the top left corner of the control's bounds in screen coordinates (computed in Arrange(Vector2F, Vector2F)).
(Inherited from UIControl.)
Public propertyActualY
Gets the actual Y position of the top left corner of the control's bounds in screen coordinates (computed in Arrange(Vector2F, Vector2F)).
(Inherited from UIControl.)
Public propertyAllowedPlayer
Gets or sets the LogicalPlayerIndex from which input is accepted.
(Inherited from UIControl.)
Public propertyAutoUnfocus
Gets or sets a value indicating whether this control clears the focus when the mouse clicks another control than the currently focused control. This is a game object property.
(Inherited from UIControl.)
Public propertyBackground
Gets or sets the background color. This is a game object property.
(Inherited from UIControl.)
Public propertyCanDrag
Gets or sets a value indicating whether this window can dragged with the mouse. This is a game object property.
Public propertyCanResize
Gets or sets a value indicating whether this window can be resized with the mouse. This is a game object property.
Public propertyClipContent
Gets or sets a value indicating whether the Content is clipped to the ContentBounds or whether the Content can draw outside the ContentBounds. This is a game object property.
(Inherited from ContentControl.)
Public propertyCloseButtonStyle
Gets or sets the style that is applied to the Close button. This is a game object property.
Public propertyContent
Gets or sets the content.
(Inherited from ContentControl.)
Public propertyContentBounds
Gets the content bounds that define where the Content is drawn.
(Inherited from ContentControl.)
Public propertyContentStyle
Gets or sets the style that is applied to the Content. This is a game object property.
(Inherited from ContentControl.)
Public propertyContextMenu
Gets or sets the context menu that should pop up when the control is right-clicked (tap-and-hold on Windows Phone 7).
(Inherited from UIControl.)
Public propertyCursor
Gets or sets the mouse cursor that should be displayed when the mouse is over this control.
(Inherited from UIControl.)
Public propertyDesiredHeight
Gets the desired height (including Margin) (which is computed in Measure(Vector2F)).
(Inherited from UIControl.)
Public propertyDesiredWidth
Gets the desired width (including Margin) (which is computed in Measure(Vector2F)).
(Inherited from UIControl.)
Public propertyDialogResult
Gets or sets the dialog result. This is a game object property.
Public propertyEvents
Gets the game object events.
(Inherited from GameObject.)
Public propertyFocusable
Gets or sets a value indicating whether this UIControl can receive the input focus. This is a game object property.
(Inherited from UIControl.)
Public propertyFocusWhenMouseOver
Gets or sets a value indicating whether the control automatically receives focus when the mouse is over the control (without being clicked). This is a game object property.
(Inherited from UIControl.)
Public propertyFont
Gets or sets the font that is used if the control renders text. This is a game object property.
(Inherited from UIControl.)
Public propertyForeground
Gets or sets the foreground color. This is a game object property.
(Inherited from UIControl.)
Public propertyHasRenderTransform
Gets a value indicating whether this control has a render transform that is not the identity transformation.
(Inherited from UIControl.)
Public propertyHeight
Gets or sets the user-defined height. This is a game object property.
(Inherited from UIControl.)
Public propertyHideOnClose
Gets or sets a value indicating whether a this window is made in visible or totally removed from the control tree when the window is closed. This is a game object property.
Public propertyHorizontalAlignment
Gets or sets the horizontal alignment of this control. This is a game object property.
(Inherited from UIControl.)
Public propertyIcon
Gets or sets the texture that contains the window icon. This is a game object property.
Public propertyIconSourceRectangle
Gets or sets the region of the Icon texture that contains the icon. This is a game object property.
Public propertyIconStyle
Gets or sets the style that is applied to the Image control that draws the Icon. This is a game object property.
Public propertyInputService
Gets the IInputService.
(Inherited from UIControl.)
Public propertyIsActive
Gets a value indicating whether this window is the currently active window. This is a game object property.
Public propertyIsArrangeValid
Gets a value indicating whether the Arrange(Vector2F, Vector2F) results are up-to-date.
(Inherited from UIControl.)
Public propertyIsEnabled
Gets or sets a value indicating whether this control is enabled. This is a game object property.
(Inherited from UIControl.)
Public propertyIsFocused
Gets a value indicating whether this control has the input focus. This is a game object property.
(Inherited from UIControl.)
Public propertyIsFocusScope
Gets or sets a value indicating whether this control is a focus scope. This is a game object property.
(Inherited from UIControl.)
Public propertyIsFocusWithin
Gets (or sets) a value indicating whether the focus is on this control or on any of the visual children.
(Inherited from UIControl.)
Public propertyIsLoaded
Gets a value indicating whether the content of this object was loaded.
(Inherited from GameObject.)
Public propertyIsMeasureValid
Gets a value indicating whether the Measure(Vector2F) results (DesiredWidth and DesiredHeight) are up-to-date.
(Inherited from UIControl.)
Public propertyIsModal
Gets or sets a value indicating whether this window is a modal dialog. This is a game object property.
Public propertyIsMouseDirectlyOver
Gets a value indicating whether the mouse is over this control and not over a visual child control.
(Inherited from UIControl.)
Public propertyIsMouseOver
Gets or sets a value indicating whether the mouse is over this control or over a visual child. This is a game object property.
(Inherited from UIControl.)
Public propertyIsVisible
Gets or sets a value indicating whether this control is visible. This is a game object property.
(Inherited from UIControl.)
Public propertyIsVisualValid
Gets a value indicating whether the cached RenderData is up-to-date.
(Inherited from UIControl.)
Public propertyMargin
Gets or sets the margin. This is a game object property.
(Inherited from UIControl.)
Public propertyMaxHeight
Gets or sets the maximal height of the control. This is a game object property.
(Inherited from UIControl.)
Public propertyMaxWidth
Gets or sets the maximal width of the control. This is a game object property.
(Inherited from UIControl.)
Public propertyMinHeight
Gets or sets the minimal height of the control. This is a game object property.
(Inherited from UIControl.)
Public propertyMinWidth
Gets or sets the minimal width of the control. This is a game object property.
(Inherited from UIControl.)
Public propertyName
Gets or sets the name.
(Inherited from GameObject.)
Public propertyOpacity
Gets or sets the opacity. This is a game object property.
(Inherited from UIControl.)
Public propertyOwner
Gets the owner of this window that was specified in Show(UIControl) (typically a UIScreen).
Public propertyPadding
Gets or sets the padding. This is a game object property.
(Inherited from UIControl.)
Public propertyProperties
Gets the game object properties.
(Inherited from GameObject.)
Public propertyRenderData
Gets or sets the cached renderer data.
(Inherited from UIControl.)
Public propertyRendererInfo Obsolete.
Gets or sets the cached renderer data.
(Inherited from UIControl.)
Public propertyRenderRotation
Gets or sets the rotation of the RenderTransform. This is a game object property.
(Inherited from UIControl.)
Public propertyRenderScale
Gets or sets the scale of the RenderTransform. This is a game object property.
(Inherited from UIControl.)
Public propertyRenderTransform
Gets the render transformation.
(Inherited from UIControl.)
Public propertyRenderTransformOrigin
Gets or sets the relative origin of the RenderTransform. This is a game object property.
(Inherited from UIControl.)
Public propertyRenderTranslation
Gets or sets the translation of the RenderTransform. This is a game object property.
(Inherited from UIControl.)
Public propertyResizeBorder
Gets or sets the dimensions of the window border where resize operations can start. This is a game object property.
Public propertyScreen
Gets the UIScreen.
(Inherited from UIControl.)
Public propertyStyle
Gets or sets the style.
(Inherited from UIControl.)
Public propertyTag Obsolete.
Gets or sets a user-defined tag.
(Inherited from UIControl.)
Public propertyTemplate
Gets or sets the template.
(Inherited from GameObject.)
Public propertyTitle
Gets or sets the window title that is visible in the caption bar. This is a game object property.
Public propertyTitleTextBlockStyle
Gets or sets the style that is applied to the TextBlock that draws the window Title. This is a game object property.
Public propertyToolTip
Gets or sets the tool tip. This is a game object property.
(Inherited from UIControl.)
Public propertyUIService
Gets the IUIService.
(Inherited from UIControl.)
Public propertyUserData
Gets or sets user-defined data.
(Inherited from UIControl.)
Public propertyVerticalAlignment
Gets or sets the vertical alignment of this control. This is a game object property.
(Inherited from UIControl.)
Public propertyVisualChildren
Gets the visual children.
(Inherited from UIControl.)
Public propertyVisualParent
Gets the visual parent.
(Inherited from UIControl.)
Public propertyVisualState
Gets the visual state of the control as string.
(Overrides UIControlVisualState.)
Public propertyWidth
Gets or sets the user-defined width. This is a game object property.
(Inherited from UIControl.)
Public propertyX
Gets or sets the x-position offset of the control. (Use this only for controls in a Canvas or under the UIScreen.) This is a game object property.
(Inherited from UIControl.)
Public propertyY
Gets or sets the y-position offset of the control. (Use this only for controls in a Canvas or under the UIScreen.) This is a game object property.
(Inherited from UIControl.)
Top
Events
  NameDescription
Public eventClosed
Occurs when the window was closed using the Close method. This is a game object event.
Public eventClosing
Occurs when the window is closing. Allows to cancel the closing operation. This is a game object event.
Public eventInputProcessed
Occurs after the device input was processed.
(Inherited from UIControl.)
Public eventInputProcessing
Occurs before the device input is processed.
(Inherited from UIControl.)
Public eventPropertyChanged
Occurs when a property value has changed.
(Inherited from GameObject.)
Public eventTemplateChanged
Occurs when the Template changed.
(Inherited from GameObject.)
Top
Explicit Interface Implementations
Remarks

A window is ContentControl. The Content is usually a Panel. Besides the Content the window contains an Icon, a Title and a Close button.

The window can be dragged with the mouse if CanDrag is . A dragging operation starts when the user clicks any part of the window (except over nested controls). The window can be resized with the mouse if CanResize is . A resize operation starts when the user clicks the border of the window. ResizeBorder defines the size of the border where resize operations can start. For windows that can be dragged or resized, use only top/left for the VerticalAlignment and HorizontalAlignment.

Visual States: The VisualStates of this control are: "Disabled", "Default", "Active"

Examples
The following example shows how to create a simple message box.
C#
private void ShowMessageBox(UIScreen screen, string title, string message)
{
  // ----- Create the message box.
  var text = new TextBlock
  {
    Text = message,
    Margin = new Vector4F(4),
    HorizontalAlignment = HorizontalAlignment.Center,
  };

  var button = new Button
  {
    Content = new TextBlock { Text = "Ok" },
    IsCancel = true,    // Cancel buttons are clicked when the user presses ESC (or BACK or B on the gamepad).
    IsDefault = true,   // Default buttons are clicked when the user presses ENTER or SPACE (or START or A on the gamepad).
    Margin = new Vector4F(4),
    Width = 60,
    HorizontalAlignment = HorizontalAlignment.Center,
  };

  var stackPanel = new StackPanel { Margin = new Vector4F(4) };
  stackPanel.Children.Add(text);
  stackPanel.Children.Add(button);

  var window = new Window
  {
    CanResize = false,
    IsModal = true,   // Modal dialogs consume all input until the window is closed.
    Content = stackPanel,
    MinHeight = 0,
    Title = title,
  };

  button.Click += (s, e) => window.Close();

  // ----- Show the window in the center of the screen.
  // First, we need to open the window. 
  window.Show(screen);

  // The window is now part of the visual tree of controls and can be measured. (The 
  // window does not have a fixed size. Window.Width and Window.Height are NaN. The 
  // size is calculated automatically depending on its content.)
  window.Measure(new Vector2F(float.PositiveInfinity));

  // Measure() computes DesiredWidth and DesiredHeight. With this info we can center the 
  // window on the screen.
  window.X = screen.ActualWidth / 2 - window.DesiredWidth / 2;
  window.Y = screen.ActualHeight / 2 - window.DesiredHeight / 2;
}
See Also