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
Properties
Click
获取或设置按钮被点击时触发的事件类型。
public ButtonClickEventType Click { get; set; }
Property Value
Remarks
如果此属性设置为 ReturnValue,
则在用户点击按钮时,KOOK 会通过网关下发按钮点击事件,并携带 Value 的值。
如果此属性设置为 Link,
则在用户点击按钮时,KOOK 会将用户重定向到 Value 指定的 URL。
Text
获取或设置按钮的文本元素。
public IElementBuilder? Text { get; set; }
Property Value
Remarks
Theme
获取或设置按钮的主题。
public ButtonTheme Theme { get; set; }
Property Value
Type
获取此构建器构建的元素的类型。
public ElementType Type { get; }
Property Value
Value
获取或设置按钮的值。
public string? Value { get; set; }
Property Value
Remarks
如果 Click 设置为 ReturnValue,
则在用户点击按钮时,KOOK 会通过网关下发按钮点击事件,并携带此属性的值。
如果 Click 设置为 Link,
则在用户点击按钮时,KOOK 会将用户重定向到此属性指定的 URL。
Methods
Build()
构建当前构建器为一个 ButtonElement。
public ButtonElement Build()
Returns
- ButtonElement
由当前构建器表示的属性构建的 ButtonElement 对象。
Exceptions
- ArgumentException
Text 既不是 PlainTextElementBuilder 也不是 KMarkdownElementBuilder。
- ArgumentNullException
Text 为
null
。- ArgumentException
Text 为空字符串。
- ArgumentException
文本的长度超过了 MaxButtonTextLength。
- ArgumentException
- 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
Equals(object?)
Determines whether the specified object is equal to the current object.
public override bool Equals(object? obj)
Parameters
obj
objectThe object to compare with the current object.
Returns
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>一个包含对新创建的文本元素构建器进行配置的操作的委托,委托的入参类型必须是 PlainTextElementBuilder 或 KMarkdownElementBuilder。
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
ButtonElementBuilderright
ButtonElementBuilder
Returns
- bool
如果两个 ButtonElementBuilder 相等,则为
true
;否则为false
。
operator !=(ButtonElementBuilder?, ButtonElementBuilder?)
判定两个 ButtonElementBuilder 是否不相等。
public static bool operator !=(ButtonElementBuilder? left, ButtonElementBuilder? right)
Parameters
left
ButtonElementBuilderright
ButtonElementBuilder
Returns
- bool
如果两个 ButtonElementBuilder 不相等,则为
true
;否则为false
。