CursorPageViewModel.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using Avalonia;
  5. using Avalonia.Input;
  6. using Avalonia.Media.Imaging;
  7. using Avalonia.Platform;
  8. using MiniMvvm;
  9. namespace ControlCatalog.ViewModels
  10. {
  11. public class CursorPageViewModel : ViewModelBase
  12. {
  13. public CursorPageViewModel()
  14. {
  15. StandardCursors = Enum.GetValues(typeof(StandardCursorType))
  16. .Cast<StandardCursorType>()
  17. .Select(x => new StandardCursorModel(x))
  18. .ToList();
  19. var s = AssetLoader.Open(new Uri("avares://ControlCatalog/Assets/avalonia-32.png"));
  20. var bitmap = new Bitmap(s);
  21. CustomCursor = new Cursor(bitmap, new PixelPoint(16, 16));
  22. }
  23. public IEnumerable<StandardCursorModel> StandardCursors { get; }
  24. public Cursor CustomCursor { get; }
  25. }
  26. public class StandardCursorModel
  27. {
  28. public StandardCursorModel(StandardCursorType type)
  29. {
  30. Type = type;
  31. Cursor = new Cursor(type);
  32. }
  33. public StandardCursorType Type { get; }
  34. public Cursor Cursor { get; }
  35. }
  36. }