Table of Contents

Class ButtonElementBuilder

Namespace
Kook
Assembly
Kook.Net.Core.dll

用来构建 ButtonElement 元素的构建器。

public class ButtonElementBuilder : IElementBuilder, IEquatable<ButtonElementBuilder>, IEquatable<IElementBuilder>
Inheritance
ButtonElementBuilder
Implements
Inherited Members

Constructors

ButtonElementBuilder()

初始化一个 ButtonElementBuilder 类的新实例。

public ButtonElementBuilder()

ButtonElementBuilder(string, ButtonTheme, string?, ButtonClickEventType)

初始化一个 ButtonElementBuilder 类的新实例。

public ButtonElementBuilder(string text, ButtonTheme theme = ButtonTheme.Primary, string? value = null, ButtonClickEventType click = ButtonClickEventType.None)

Parameters

text string

按钮的文本。

theme ButtonTheme

按钮的主题。

value string

按钮的值。

click ButtonClickEventType

按钮的点击事件类型。

Remarks

如果 click 设置为 ReturnValue, 则在用户点击按钮时,KOOK 会通过网关下发按钮点击事件,并携带 value 的值。
如果 click 设置为 Link, 则在用户点击按钮时,KOOK 会将用户重定向到 value 指定的 URL。

Fields

MaxButtonTextLength

按钮文本的最大长度。

public const int MaxButtonTextLength = 40

Field Value

int

Properties

Click

获取或设置按钮被点击时触发的事件类型。

public ButtonClickEventType Click { get; set; }

Property Value

ButtonClickEventType

Remarks

如果此属性设置为 ReturnValue, 则在用户点击按钮时,KOOK 会通过网关下发按钮点击事件,并携带 Value 的值。
如果此属性设置为 Link, 则在用户点击按钮时,KOOK 会将用户重定向到 Value 指定的 URL。

Text

获取或设置按钮的文本元素。

public IElementBuilder? Text { get; set; }

Property Value

IElementBuilder

Remarks

Theme

获取或设置按钮的主题。

public ButtonTheme Theme { get; set; }

Property Value

ButtonTheme

Type

获取此构建器构建的元素的类型。

public ElementType Type { get; }

Property Value

ElementType

Value

获取或设置按钮的值。

public string? Value { get; set; }

Property Value

string

Remarks

如果 Click 设置为 ReturnValue, 则在用户点击按钮时,KOOK 会通过网关下发按钮点击事件,并携带此属性的值。
如果 Click 设置为 Link, 则在用户点击按钮时,KOOK 会将用户重定向到此属性指定的 URL。

Methods

Build()

构建当前构建器为一个 ButtonElement

public ButtonElement Build()

Returns

ButtonElement

由当前构建器表示的属性构建的 ButtonElement 对象。

Exceptions

ArgumentException

Text 既不是 PlainTextElementBuilder 也不是 KMarkdownElementBuilder

ArgumentNullException

Textnull

ArgumentException

Text 为空字符串。

ArgumentException

文本的长度超过了 MaxButtonTextLength

ArgumentException

ClickLinkValuenull 或空。

UriFormatException

Value 不是有效的 URL。

Equals(ButtonElementBuilder?)

Indicates whether the current object is equal to another object of the same type.

public bool Equals(ButtonElementBuilder? buttonElementBuilder)

Parameters

buttonElementBuilder ButtonElementBuilder

Returns

bool

true if the current object is equal to the other parameter; otherwise, false.

Equals(object?)

Determines whether the specified object is equal to the current object.

public override bool Equals(object? obj)

Parameters

obj object

The object to compare with the current object.

Returns

bool

true if the specified object is equal to the current object; otherwise, false.

GetHashCode()

Serves as the default hash function.

public override int GetHashCode()

Returns

int

A hash code for the current object.

WithClick(ButtonClickEventType)

设置按钮被点击时触发的事件类型,值将被设置到 Click 属性上。

public ButtonElementBuilder WithClick(ButtonClickEventType click)

Parameters

click ButtonClickEventType

按钮的点击事件类型。

Returns

ButtonElementBuilder

当前构建器。

WithText(KMarkdownElementBuilder)

设置按钮的文本。

public ButtonElementBuilder WithText(KMarkdownElementBuilder text)

Parameters

text KMarkdownElementBuilder

按钮的文本。

Returns

ButtonElementBuilder

当前构建器。

WithText(PlainTextElementBuilder)

设置按钮的文本。

public ButtonElementBuilder WithText(PlainTextElementBuilder text)

Parameters

text PlainTextElementBuilder

按钮的文本。

Returns

ButtonElementBuilder

当前构建器。

WithText(string, bool)

设置按钮的文本。

public ButtonElementBuilder WithText(string text, bool isKMarkdown = false)

Parameters

text string

按钮的文本。

isKMarkdown bool

文本是否为 KMarkdown 格式;如果为 true,则文本将被设置为 KMarkdownElement;如果为 false,则文本将被设置为 PlainTextElement

Returns

ButtonElementBuilder

当前构建器。

WithText<T>(Action<T>)

设置按钮的文本。

public ButtonElementBuilder WithText<T>(Action<T> action) where T : IElementBuilder, new()

Parameters

action Action<T>

一个包含对新创建的文本元素构建器进行配置的操作的委托,委托的入参类型必须是 PlainTextElementBuilderKMarkdownElementBuilder

Returns

ButtonElementBuilder

当前构建器。

Type Parameters

T

WithTheme(ButtonTheme)

设置按钮的主题,值将被设置到 Theme 属性上。

public ButtonElementBuilder WithTheme(ButtonTheme theme)

Parameters

theme ButtonTheme

按钮的主题。

Returns

ButtonElementBuilder

当前构建器。

WithValue(string?)

设置按钮的值,值将被设置到 Value 属性上。

public ButtonElementBuilder WithValue(string? value)

Parameters

value string

按钮的值。

Returns

ButtonElementBuilder

当前构建器。

Operators

operator ==(ButtonElementBuilder?, ButtonElementBuilder?)

判定两个 ButtonElementBuilder 是否相等。

public static bool operator ==(ButtonElementBuilder? left, ButtonElementBuilder? right)

Parameters

left ButtonElementBuilder
right ButtonElementBuilder

Returns

bool

如果两个 ButtonElementBuilder 相等,则为 true;否则为 false

operator !=(ButtonElementBuilder?, ButtonElementBuilder?)

判定两个 ButtonElementBuilder 是否不相等。

public static bool operator !=(ButtonElementBuilder? left, ButtonElementBuilder? right)

Parameters

left ButtonElementBuilder
right ButtonElementBuilder

Returns

bool

如果两个 ButtonElementBuilder 不相等,则为 true;否则为 false