<ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the <linklocation="node:gtk-sharp/programming/threads">Gtk# Thread Programming</link> for details.</ThreadSafetyStatement>
<para>The HandleBox widget allows a portion of a window to be "torn off". It is a <seecref="T:Gtk.Bin"/> widget that displays its child with a handle that the user can drag to create a separate floating window containing the child widget and the 'handle'.</para>
<para>A thin ghost is drawn in the original location of the HandleBox. By dragging the separate window back to its original location, it can be reattached. When reattaching, the ghost and float window, must be aligned along one of the edges, the <seecref="P:Gtk.HandlBox.SnapEdge"/>. This can either be specified by the application programmer explicitly, otherwise a reasonable default will be used, based on the <seecref="P:Gtk.HandleBox.HandlePosition"/>.</para>
<para>To make detaching and reattaching the HandleBox as minimally confusing as possible to the user, it is important to set the snap edge so that it does not move when the HandleBox is deattached. For instance, if the HandleBox is packed at the bottom of a <seecref="T:Gtk.VBox"/>, then when the HandleBox is detached, the bottom edge of the HandleBox's allocation will remain fixed as the height of the HandleBox shrinks, so the snap edge should be set to <seecref="P:Gtk.PositionType.Bottom"/>.</para>
<para>The child of this widget is set using the <seecref="M:Gtk.Container.Add"/> method in <seecref="T:Gtk.Container"/>.</para>
<para>To ensure good usability, this edge should be set to a side of the HandleBox whose position or size will not be altered when the child is detached.</para>
<para>Note: In western cultures, anything other than a <seecref="P:Gtk.PositionType.Left"/> handle for horizontal HandleBoxes, or a <seecref="P:Gtk.PositionType.Top"/> handle for vertical HandleBoxes, may seem strange to users.</para>
<para>The reverse is likely to be true for cultures with languages that are written from right to left.</para>
<returns>Creates a new instance of HandleBox, using the GLib-provided type</returns>
<remarks>
<para>This is a constructor used by derivative types of <seecref="T:Gtk.HandleBox"/> that would have their own GLib type assigned to it. This is not typically used by C# code.</para>