<ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the <linklocation="node:gtk-sharp/programming/threads">Gtk# Thread Programming</link> for details.</ThreadSafetyStatement>
GtkScrolledWindow is a <seecref="T:Gtk.Bin"/> subclass: it's a container the accepts a single child widget. GtkScrolledWindow adds scrollbars to the child widget and optionally draws a beveled frame around the child widget.
The scrolled window can work in two ways. Some widgets have native scrolling support; these widgets have "slots" for <seecref="T:Gtk.Adjustment"/> objects. Widgets with native scroll support include <seecref="T:Gtk.TreeView"/>, <seecref="T:Gtk.TextView"/>, and <seecref="T:Gtk.Layout"/>.
The position of the scrollbars is controlled by the scroll adjustments. See <seecref="T:Gtk.Adjustment"/> for the properties in an adjustment - for <seecref="T:Gtk.Scrollbar"/>, used by <seecref="T:Gtk.ScrolledWindow"/>, the <seecref="P:Gtk.Adjustment.Value"/> property represents the position of the scrollbar, which must be between the <seecref="P:Gtk.Adjustment.Lower"/> and <seecref="P:Gtk.Adjustment.Upper"/> - <seecref="P:Gtk.Adjustment.PageSize"/>. The <seecref="P:Gtk.Adjustment.PageSize"/> property represents the size of the visible scrollable area. The <seecref="P:Gtk.Adjustment.StepIncrement"/> and <seecref="P:Gtk.Adjustment.PageIncrement"/> properties are used when the user asks to step down (using the small stepper arrows) or page down (using for example the PageDown key).
Used to add children without native scrolling capabilities. This is simply a convenience function; it is equivalent to adding the unscrollable child to a viewport, then adding the viewport to the scrolled window. If a child has native scrolling, use <seecref="M:Gtk.Container.Add"/> instead of this function.
The viewport scrolls the child by moving its <seecref="T:Gdk.Window"/>, and takes the size of the child to be the size of its toplevel <seecref="T:Gdk.Window"/>. This will be very wrong for most widgets that support native scrolling; for example, if you add a widget such as <seecref="T:Gtk.TreeView"/> with a viewport, the whole widget will scroll, including the column headings. Thus, widgets with native scrolling support should not be used with the <seecref="T:Gtk.Viewport"/> proxy.
A widget supports scrolling natively if the set_scroll_adjustments_signal field in GtkWidgetClass is non-zero, i.e. has been filled in with a valid signal identifier.
Sets the scrollbar policy for the horizontal and vertical scrollbars. The policy determines when the scrollbar should appear; it is a value from the <seecref="T:Gtk.PolicyType"/> enumeration. If <seecref="T:Gtk.PolicyType.Always"/>, the scrollbar is always present; if <seecref="T:Gtk.PolicyType.Never"/>, the scrollbar is never present; if <seecref="T:Gtk.PolicyType.Automatic"/>, the scrollbar is present only if needed (that is, if the slider part of the bar would be smaller than the trough - the display is larger than the page size).
<returns>Creates a new instance of ScrolledWindow, using the GLib-provided type</returns>
<remarks>
<para>This is a constructor used by derivative types of <seecref="T:Gtk.ScrolledWindow"/> that would have their own GLib type assigned to it. This is not typically used by C# code.</para>
Creates a new scrolled window. The two arguments are the scrolled window's adjustments; these will be shared with the scrollbars and the child widget to keep the bars in sync with the child. Usually you want to pass <seecref="langword:null"/> for the adjustments, which will cause the scrolled window to create them for you.
Determines the location of the child widget with respect to the scrollbars. The default is <seecref="T:Gtk.CornerType.TopLeft"/>, meaning the child is in the top left, with the scrollbars underneath and to the right. Other values in <seecref="T:Gtk.CornerType"/> are <seecref="T:Gtk.CornerType.TopRight"/>, <seecref="T:Gtk.CornerType.BottomLeft"/>, and <seecref="T:Gtk.CornerType.BottomRight"/>.