ClippingPage.xaml.cs 835 B

1234567891011121314151617181920212223242526272829303132333435
  1. using System;
  2. using System.Reactive.Linq;
  3. using Avalonia;
  4. using Avalonia.Animation;
  5. using Avalonia.Controls;
  6. using Avalonia.Data;
  7. using Avalonia.Markup.Xaml;
  8. using Avalonia.Media;
  9. namespace RenderDemo.Pages
  10. {
  11. public class ClippingPage : UserControl
  12. {
  13. private Geometry _clip;
  14. public ClippingPage()
  15. {
  16. InitializeComponent();
  17. WireUpCheckbox();
  18. }
  19. private void InitializeComponent()
  20. {
  21. AvaloniaXamlLoader.Load(this);
  22. }
  23. private void WireUpCheckbox()
  24. {
  25. var useMask = this.FindControl<CheckBox>("useMask");
  26. var clipped = this.FindControl<Border>("clipped");
  27. _clip = clipped.Clip;
  28. useMask.Click += (s, e) => clipped.Clip = clipped.Clip == null ? _clip : null;
  29. }
  30. }
  31. }