GrowlWindow.cs 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using System;
  2. using System.Windows;
  3. using System.Windows.Controls;
  4. using HandyControl.Tools;
  5. using HandyControl.Tools.Interop;
  6. namespace HandyControl.Controls;
  7. public sealed class GrowlWindow : Window
  8. {
  9. internal Panel GrowlPanel { get; set; }
  10. internal GrowlWindow()
  11. {
  12. WindowStyle = WindowStyle.None;
  13. AllowsTransparency = true;
  14. GrowlPanel = new StackPanel
  15. {
  16. VerticalAlignment = VerticalAlignment.Top
  17. };
  18. Content = new ScrollViewer
  19. {
  20. VerticalScrollBarVisibility = ScrollBarVisibility.Hidden,
  21. IsInertiaEnabled = true,
  22. Content = GrowlPanel
  23. };
  24. }
  25. internal void Init()
  26. {
  27. var desktopWorkingArea = SystemParameters.WorkArea;
  28. Height = desktopWorkingArea.Height;
  29. Left = desktopWorkingArea.Right - Width;
  30. Top = 0;
  31. }
  32. protected override void OnSourceInitialized(EventArgs e)
  33. => InteropMethods.IntDestroyMenu(this.GetHwndSource().CreateHandleRef());
  34. }