ButtonTextElementState.cs 689 B

123456789101112131415161718192021222324
  1. using Avalonia.Controls;
  2. using PixiEditor.Extensions.CommonApi.LayoutBuilding;
  3. using PixiEditor.Extensions.CommonApi.LayoutBuilding.Events;
  4. using PixiEditor.Extensions.LayoutBuilding.Elements;
  5. using Button = PixiEditor.Extensions.LayoutBuilding.Elements.Button;
  6. namespace SampleExtension.LayoutBuilder;
  7. public class ButtonTextElementState : State
  8. {
  9. public int ClickedTimes { get; private set; } = 0;
  10. public override LayoutElement BuildElement()
  11. {
  12. return new Button(
  13. onClick: OnClick,
  14. child: new Text($"Clicked: {ClickedTimes}"));
  15. }
  16. private void OnClick(ElementEventArgs args)
  17. {
  18. SetState(() => ClickedTimes++);
  19. }
  20. }