<ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the <linklocation="node:gtk-sharp/programming/threads">Gtk# Thread Programming</link> for details.</ThreadSafetyStatement>
<summary>Group widgets so they request the same size.</summary>
<remarks>
<para>
A SizeGroup provides a mechanism for grouping a number of widgets together so they all request the same amount of space. This is typically useful when you want a column of widgets to have the same size, but you can't use a <seecref="T:Gtk.Table"/> widget. Its use is effectively demonstrated by the Human Interface Guidelines of the Gnome project.
</para>
<para>
In detail, the size requested for each widget in a SizeGroup is the maximum of the sizes that would have been requested for each widget in the SizeGroup without a SizeGroup. The <seecref="P:Gtk.SizeGroup.Mode"/> of the size group determines whether this applies to the horizontal size, the vertical size, or both sizes.
</para>
<para>
Note that SizeGroups only affect the amount of space requested, not the size that the widgets finally receive. If you want the widgets in a SizeGroup to actually be the same size, you need to pack them in such a way that they get the size they request and not more. For example, if you are packing your widgets into a table, you would not include the Fill flag.
</para>
<para>
SizeGroup objects are referenced by each widget in the size group, so once you have added all widgets to a SizeGroup, you can drop the initial reference to the SizeGroup by calling <seecref="M:GLib.Object.Unref"/>. If the widgets in the SizeGroup are subsequently destroyed, then they will be removed from the SizeGroup and drop their references on the SizeGroup; when all widgets have been removed, the size group will be freed.
</para>
<para>
Widgets can be part of multiple size groups; GTK will compute the horizontal size of a widget from the horizontal requisition of all widgets that can be reached from the widget by a chain of size groups of type <seecref="P:Gtk.SizeGroupMode.Horizontal"/> or <seecref="P:Gtk.SizeGroupMode.Both"/>. Likewise, the vertical size is computed from the vertical requisition of all widgets that can be reached from the widget by a chain of size groups of type <seecref="P:Gtk.SizeGroupMode.Vertical"/> or <seecref="P:Gtk.SizeGroupMode.Both"/>.
<summary>Sets a mode to determine which direction this SizeGroup controls.</summary>
<paramname="value">A new direction 'mode' for this SizeGroup to tie together.</param>
<returns>The current 'mode' that indicates the direction this SizeGroup ties together.</returns>
<remarks>
<para>
The mode of the size group determines whether the widgets in the SizeGroup should all have the same <seecref="P:Gtk.SizeGroupMode.Horizontal"/> or <seecref="P:Gtk.SizeGroupMode.Vertical"/> requisition, or should all have the same requisition in <seecref="P:Gtk.SizeGroupMode.Both"/> directions.
<returns>Creates a new instance of SizeGroup, using the GLib-provided type</returns>
<remarks>
<para>This is a constructor used by derivative types of <seecref="T:Gtk.SizeGroup"/> that would have their own GLib type assigned to it. This is not typically used by C# code.</para>