Skip to content

Class Button

Framework View

The tag name of this view is <button>.

Definition

Namespace: StardewUI.Widgets
Assembly: StardewUI.dll

Simple button with optional hover background.

[StardewUI.GenerateDescriptor]
public class Button : StardewUI.Widgets.ComponentView<T>

Inheritance
ObjectDecoratorView<T>ComponentView<T> ⇦ Button

Members

Constructors

Name Description
Button()

Properties

Name Description
ActualBounds
actual-bounds
The bounds of this view relative to the origin (0, 0).
(Inherited from DecoratorView<T>)
ClipOrigin
clip-origin
Origin position for the ClipSize.
(Inherited from DecoratorView<T>)
ClipSize
clip-size
Size of the clipping rectangle, outside which content will not be displayed.
(Inherited from DecoratorView<T>)
Content
content
Content view to display inside the button frame.
ContentBounds
content-bounds
The true bounds of this view's content; i.e. ActualBounds excluding margins.
(Inherited from DecoratorView<T>)
DefaultBackground
default-background
The default background to show for the button's idle state.
DefaultBackgroundTint
default-background-tint
Tint color for the DefaultBackground.
FloatingBounds
floating-bounds
Contains the bounds of all floating elements in this view tree, including the current view and all descendants.
(Inherited from DecoratorView<T>)
Font
font
Font with which to render button text.
HorizontalContentAlignment
horizontal-content-alignment
The button panel's HorizontalContentAlignment(unofficial-mushymato)
HoverBackground
hover-background
Alternate background sprite when the button has cursor focus.
HoverBackgroundTint
hover-background-tint
Tint color for the HoverBackground.
HoveredSubject
hovered-subject
When Lookup Anything (Pathoschild.LookupAnything) is loaded, this Object or NPC subject is given to lookup anything for it's menu. (unofficial-mushymato)
(Inherited from DecoratorView<T>)
IsFocusable
is-focusable
Whether or not the view can receive controller focus, i.e. the stick/d-pad controlled cursor can move to this view. Not generally applicable for mouse controls.
(Inherited from DecoratorView<T>)
Layout
layout
The current layout parameters, which determine how Measure(Vector2) will behave.
(Inherited from DecoratorView<T>)
Margin
margin
Margin to add outside the button.
Name
name
Simple name for this view, used in log/debug output; does not affect behavior.
(Inherited from DecoratorView<T>)
Opacity
opacity
Opacity (alpha level) of the view.
(Inherited from DecoratorView<T>)
OuterSize
outer-size
The true computed layout size resulting from a single Measure(Vector2) pass.
(Inherited from DecoratorView<T>)
Padding
padding
Padding to add inside the button. This is actually the padding of the inner frame instead of the panel. (unofficial-mushymato)
PointerEventsEnabled
pointer-events-enabled
Whether this view should receive pointer events like Click or Drag.
(Inherited from DecoratorView<T>)
PointerStyle
pointer-style
Pointer style to use when this view is hovered.
(Inherited from DecoratorView<T>)
ScreenRead
screen-read
When a screen reader mod (shoaib.stardewaccess) is loaded, this element will be announced by the screen reader using this value. (unofficial-mushymato)
(Inherited from DecoratorView<T>)
ScrollWithChildren
scroll-with-children
If set to an axis, specifies that when any child of the view is scrolled into view (using ScrollIntoView(IEnumerable<ViewChild>, Vector2)), then this entire view should be scrolled along with it.
(Inherited from DecoratorView<T>)
ShadowVisible
shadow-visible
Whether or not to display a drop shadow for the button frame. Default false.
Tags
tags
The user-defined tags for this view.
(Inherited from DecoratorView<T>)
Text
text
Text to display inside the button.
Tooltip
tooltip
Tooltip data to display on hover, if any.
(Inherited from DecoratorView<T>)
Transform
transform
Local transformation to apply to this view, including any children and floating elements.
(Inherited from DecoratorView<T>)
TransformOrigin
transform-origin
Relative origin position for any Transform on this view.
(Inherited from DecoratorView<T>)
VerticalContentAlignment
vertical-content-alignment
The button panel's VerticalContentAlignment(unofficial-mushymato)
View
view
(Inherited from ComponentView<T>)
Visibility
visibility
Drawing visibility for this view.
(Inherited from DecoratorView<T>)
ZIndex
z-index
Z order for this view within its direct parent. Higher indices draw later (on top).
(Inherited from DecoratorView<T>)

Methods

Name Description
ContainsPoint(Vector2) Checks if a given point, relative to the view's origin, is within its bounds.
(Inherited from DecoratorView<T>)
CreateView() Creates and returns the root view.
(Overrides ComponentView<T>.CreateView())
Dispose() (Inherited from DecoratorView<T>)
Draw(ISpriteBatch) Draws the content for this view.
(Inherited from DecoratorView<T>)
FocusSearch(Vector2, Direction) Finds the next focusable component in a given direction that does not overlap with a current position.
(Inherited from DecoratorView<T>)
GetChildAt(Vector2, Boolean, Boolean) Finds the child at a given position.
(Inherited from DecoratorView<T>)
GetChildPosition(IView) Computes or retrieves the position of a given direct child.
(Inherited from DecoratorView<T>)
GetChildren(Boolean) Gets the current children of this view.
(Inherited from DecoratorView<T>)
GetChildrenAt(Vector2) Finds all children at a given position.
(Inherited from DecoratorView<T>)
GetDefaultFocusChild() Gets the direct child that should contain cursor focus when a menu or overlay containing this view is first opened.
(Inherited from DecoratorView<T>)
HasOutOfBoundsContent() Checks if the view has content or elements that are all or partially outside the ActualBounds.
(Inherited from DecoratorView<T>)
IsDirty() Checks whether or not the view is dirty - i.e. requires a new layout with a full Measure(Vector2).
(Inherited from DecoratorView<T>)
IsVisible(Vector2?) Checks if the view is effectively visible, i.e. if it has anything to draw.
(Inherited from DecoratorView<T>)
Measure(Vector2) Performs layout on this view, updating its OuterSize, ActualBounds and ContentBounds, and arranging any children in their respective positions.
(Inherited from DecoratorView<T>)
OnButtonPress(ButtonEventArgs) Called when a button press is received while this view is in the focus path.
(Inherited from DecoratorView<T>)
OnButtonRepeat(ButtonEventArgs) Called when a button press is first received, and at recurring intervals thereafter, for as long as the button is held and this view remains in the focus path.
(Inherited from DecoratorView<T>)
OnClick(ClickEventArgs) Called when a click is received within this view's bounds.
(Inherited from DecoratorView<T>)
OnDrag(PointerEventArgs) Called when the view is being dragged (mouse moved while left button held).
(Inherited from DecoratorView<T>)
OnDrop(PointerEventArgs) Called when the mouse button is released after at least one OnDrag(PointerEventArgs).
(Inherited from DecoratorView<T>)
OnLayout() Runs whenever layout occurs as a result of the UI elements changing.
(Inherited from DecoratorView<T>)
OnPointerMove(PointerMoveEventArgs) Called when a pointer movement related to this view occurs.
(Inherited from DecoratorView<T>)
OnPropertyChanged(PropertyChangedEventArgs) Raises the PropertyChanged event.
(Inherited from DecoratorView<T>)
OnPropertyChanged(string) Raises the PropertyChanged event.
(Inherited from DecoratorView<T>)
OnUpdate(TimeSpan) Runs on every update tick.
(Inherited from DecoratorView<T>)
OnWheel(WheelEventArgs) Called when a wheel event is received within this view's bounds.
(Inherited from DecoratorView<T>)
RegisterDecoratedProperty<TValue>(DecoratedProperty<T, TValue>) Registers a DecoratedProperty<T, TValue>.
(Inherited from DecoratorView<T>)
ScrollIntoView(IEnumerable<ViewChild>, Vector2) Attempts to scroll the specified target into view, including all of its ancestors, if not fully in view.
(Inherited from DecoratorView<T>)

Events

Name Description
ButtonPress Event raised when any button on any input device is pressed.
(Inherited from DecoratorView<T>)
ButtonRepeat Event raised when a button is being held while the view is in focus, and has been held long enough since the initial ButtonPress or the previous ButtonRepeat to trigger a repeated press.
(Inherited from DecoratorView<T>)
Click Event raised when the view receives a click initiated from any button.
(Inherited from DecoratorView<T>)
Drag Event raised when the view is being dragged using the mouse.
(Inherited from DecoratorView<T>)
DragEnd Event raised when mouse dragging is stopped, i.e. when the button is released. Always raised after the last Drag, and only once per drag operation.
(Inherited from DecoratorView<T>)
DragStart Event raised when mouse dragging is first activated. Always raised before the first Drag, and only once per drag operation.
(Inherited from DecoratorView<T>)
LeftClick Event raised when the view receives a click initiated from the left mouse button, or the controller's action button (A).
(Inherited from DecoratorView<T>)
PointerEnter Event raised when the pointer enters the view.
(Inherited from DecoratorView<T>)
PointerLeave Event raised when the pointer exits the view.
(Inherited from DecoratorView<T>)
PointerMove Event raised when the pointer moves within the view.
(Inherited from DecoratorView<T>)
PropertyChanged (Inherited from DecoratorView<T>)
RightClick Event raised when the view receives a click initiated from the right mouse button, or the controller's tool-use button (X).
(Inherited from DecoratorView<T>)
Wheel Event raised when the scroll wheel moves.
(Inherited from DecoratorView<T>)

Details

Constructors

Button()

public Button();

Properties

Content

Content view to display inside the button frame.

public StardewUI.IView Content { get; set; }
Property Value

IView


DefaultBackground

The default background to show for the button's idle state.

public StardewUI.Graphics.Sprite DefaultBackground { get; set; }
Property Value

Sprite


DefaultBackgroundTint

Tint color for the DefaultBackground.

public Microsoft.Xna.Framework.Color DefaultBackgroundTint { get; set; }
Property Value

Color


Font

Font with which to render button text.

public Microsoft.Xna.Framework.Graphics.SpriteFont Font { get; set; }
Property Value

SpriteFont

Remarks

This setting only applies when the Content view is a Label, either via passing in a Label directly or by setting Text.


HorizontalContentAlignment

The button panel's HorizontalContentAlignment(unofficial-mushymato)

public StardewUI.Layout.Alignment HorizontalContentAlignment { get; set; }
Property Value

Alignment


HoverBackground

Alternate background sprite when the button has cursor focus.

public StardewUI.Graphics.Sprite HoverBackground { get; set; }
Property Value

Sprite


HoverBackgroundTint

Tint color for the HoverBackground.

public Microsoft.Xna.Framework.Color HoverBackgroundTint { get; set; }
Property Value

Color


Margin

Margin to add outside the button.

public StardewUI.Layout.Edges Margin { get; set; }
Property Value

Edges


Padding

Padding to add inside the button. This is actually the padding of the inner frame instead of the panel. (unofficial-mushymato)

public StardewUI.Layout.Edges Padding { get; set; }
Property Value

Edges


ShadowVisible

Whether or not to display a drop shadow for the button frame. Default false.

public bool ShadowVisible { get; set; }
Property Value

Boolean


Text

Text to display inside the button.

public string Text { get; set; }
Property Value

string

Remarks

If the Content is not a Label then this is always null, even if there is a label nested somewhere inside a different type of view. Setting this to any string value will replace the Content view with a Label having the specified text.


VerticalContentAlignment

The button panel's VerticalContentAlignment(unofficial-mushymato)

public StardewUI.Layout.Alignment VerticalContentAlignment { get; set; }
Property Value

Alignment


Methods

CreateView()

Creates and returns the root view.

protected override StardewUI.View CreateView();
Returns

View