Class ListBox

Namespace
Forma
Assembly
Forma.dll

Presents a scrollable item collection with single or multiple selection, keyboard navigation, and incremental search.

[TemplatePart("PART_ScrollPresenter", typeof(ScrollPresenter), true)]
[TemplatePart("PART_ItemsPresenter", typeof(ItemsPresenter), true)]
public class ListBox : ItemsControl, IAddChild<Control>, IAddChild, INotifyPropertyChanged, IDisposable, IItemsPresenterOwner, IItemContainerGenerator, IScrollViewportOwner
Inheritance
ListBox
Implements
Derived
Inherited Members

Constructors

ListBox()

public ListBox()

Fields

ItemsPresenterPartName

public const string ItemsPresenterPartName = "PART_ItemsPresenter"

Field Value

string

ScrollPresenterPartName

public const string ScrollPresenterPartName = "PART_ScrollPresenter"

Field Value

string

Properties

ActivateOnSingleClick

Gets or sets whether one pointer click selects and activates an item.

public bool ActivateOnSingleClick { get; set; }

Property Value

bool

AllowReselect

public bool AllowReselect { get; set; }

Property Value

bool

AllowRightMouseSelect

public bool AllowRightMouseSelect { get; set; }

Property Value

bool

CurrentIndex

public int CurrentIndex { get; set; }

Property Value

int

CurrentItem

public object CurrentItem { get; }

Property Value

object

Extent

public Vector2 Extent { get; }

Property Value

Vector2

HasSelection

public bool HasSelection { get; }

Property Value

bool

IncrementalSearchTimeout

public TimeSpan IncrementalSearchTimeout { get; set; }

Property Value

TimeSpan

IsTextSearchEnabled

public bool IsTextSearchEnabled { get; set; }

Property Value

bool

ScrollOffset

public Vector2 ScrollOffset { get; set; }

Property Value

Vector2

SelectedIndex

public int SelectedIndex { get; set; }

Property Value

int

SelectedIndices

public IReadOnlyList<int> SelectedIndices { get; }

Property Value

IReadOnlyList<int>

SelectedItem

public object SelectedItem { get; set; }

Property Value

object

SelectedItems

public IReadOnlyList<object> SelectedItems { get; }

Property Value

IReadOnlyList<object>

SelectionMode

public ItemListSelectionMode SelectionMode { get; set; }

Property Value

ItemListSelectionMode

Viewport

public Vector2 Viewport { get; }

Property Value

Vector2

WrapNavigation

public bool WrapNavigation { get; set; }

Property Value

bool

Methods

Activate(int)

public void Activate(int index)

Parameters

index int

BringIndexIntoView(int)

public bool BringIndexIntoView(int index)

Parameters

index int

Returns

bool

ClearContainerForItem(Control, object)

protected override void ClearContainerForItem(Control container, object item)

Parameters

container Control
item object

ClearSelection()

public void ClearSelection()

FindNextItem(string, int, bool)

public int FindNextItem(string prefix, int startIndex = -1, bool wrap = true)

Parameters

prefix string
startIndex int
wrap bool

Returns

int

GetContainerForItem(object)

protected override Control GetContainerForItem(object item)

Parameters

item object

Returns

Control

GetPageStep()

protected int GetPageStep()

Returns

int

IsContainerCompatibleForItem(Control, object)

protected override bool IsContainerCompatibleForItem(Control container, object item)

Parameters

container Control
item object

Returns

bool

OnItemsChanged()

protected override void OnItemsChanged()

OnScrollMetricsChanged(ScrollMetrics)

protected virtual void OnScrollMetricsChanged(ScrollMetrics metrics)

Parameters

metrics ScrollMetrics

OnTemplateApplied()

protected override void OnTemplateApplied()

PointerPressed(Point)

A pointer press landed on this control, in global coordinates.

Protected as well as internal so a control defined outside this assembly can take part in pointer input. Without that, an app hosting its own drawing surface has to read raw mouse state instead, which bypasses hit-testing, modal gating and the injection side-channel — so such a surface cannot be driven by a test at all.

protected override void PointerPressed(Point point)

Parameters

point Point

PointerReleased(Point, bool)

The pointer was released, with whether it was still inside this control.

protected override void PointerReleased(Point point, bool isInside)

Parameters

point Point
isInside bool

PrepareContainerForItem(Control, object, int)

protected override void PrepareContainerForItem(Control container, object item, int index)

Parameters

container Control
item object
index int

Select(int, bool)

public void Select(int index, bool additive = false)

Parameters

index int
additive bool

SelectItemFromPointer(int, Point)

protected virtual void SelectItemFromPointer(int index, Point point)

Parameters

index int
point Point

SelectRange(int, int)

public void SelectRange(int anchorIndex, int targetIndex)

Parameters

anchorIndex int
targetIndex int

ToggleSelection(int)

public void ToggleSelection(int index)

Parameters

index int

Events

ItemActivated

public event EventHandler<ListBoxItemEventArgs> ItemActivated

Event Type

EventHandler<ListBoxItemEventArgs>

SelectionChanged

public event EventHandler<ListBoxSelectionChangedEventArgs> SelectionChanged

Event Type

EventHandler<ListBoxSelectionChangedEventArgs>