ShowWindowTest.axaml.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using System;
  2. using Avalonia;
  3. using Avalonia.Controls;
  4. using Avalonia.Interactivity;
  5. using Avalonia.Markup.Xaml;
  6. using Avalonia.Rendering;
  7. namespace IntegrationTestApp
  8. {
  9. public class ShowWindowTest : Window
  10. {
  11. public ShowWindowTest()
  12. {
  13. InitializeComponent();
  14. DataContext = this;
  15. PositionChanged += (s, e) => this.GetControl<TextBox>("Position").Text = $"{Position}";
  16. }
  17. private void InitializeComponent()
  18. {
  19. AvaloniaXamlLoader.Load(this);
  20. }
  21. protected override void OnOpened(EventArgs e)
  22. {
  23. base.OnOpened(e);
  24. var scaling = PlatformImpl!.DesktopScaling;
  25. this.GetControl<TextBox>("Position").Text = $"{Position}";
  26. this.GetControl<TextBox>("ScreenRect").Text = $"{Screens.ScreenFromVisual(this)?.WorkingArea}";
  27. this.GetControl<TextBox>("Scaling").Text = $"{scaling}";
  28. if (Owner is not null)
  29. {
  30. var ownerRect = this.GetControl<TextBox>("OwnerRect");
  31. var owner = (Window)Owner;
  32. ownerRect.Text = $"{owner.Position}, {PixelSize.FromSize(owner.FrameSize!.Value, scaling)}";
  33. }
  34. }
  35. }
  36. }