CursorPageViewModel.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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 loader = AvaloniaLocator.Current.GetRequiredService<IAssetLoader>();
  20. var s = loader.Open(new Uri("avares://ControlCatalog/Assets/avalonia-32.png"));
  21. var bitmap = new Bitmap(s);
  22. CustomCursor = new Cursor(bitmap, new PixelPoint(16, 16));
  23. }
  24. public IEnumerable<StandardCursorModel> StandardCursors { get; }
  25. public Cursor CustomCursor { get; }
  26. }
  27. public class StandardCursorModel
  28. {
  29. public StandardCursorModel(StandardCursorType type)
  30. {
  31. Type = type;
  32. Cursor = new Cursor(type);
  33. }
  34. public StandardCursorType Type { get; }
  35. public Cursor Cursor { get; }
  36. }
  37. }