将窗口启动位置设置为右下角

问题描述 投票:0回答:1

我对使用 C# 和 AvaloniaUI 开发程序完全陌生。我想编写一个聊天应用程序,该应用程序应在右下角以小格式启动,但没有仅为“CenterOwner”和“CenterScreen”预定义“WindowStartupLocation”。我还查看了 AvaloniaUI 文档,但并没有真正找到有用的东西。

  • 尝试使用 ChatGPT 和 Bard 寻找解决方案
  • 已在首页搜索过
  • 已经查看了 AvaloniaUI,也没有发现任何东西
  • 已经尝试过通知窗口位置在右下角
c# .net user-interface screen avaloniaui
1个回答
0
投票

请记住,Avalonia 是跨平台的,并且兼容 iOS/Android。后者不支持Windows的概念。因此,在处理纯粹的桌面概念时,您必须访问 ApplicationLifetime。

工作区域为您提供屏幕尺寸减去操作系统组件(即开始菜单)。从那里,您必须将其转换为 PixelSize,然后进行通常的位置计算。请注意,作为示例,我在 Window OnLoaded 事件中执行了此操作。您也可以在外部执行此操作,但不要将其放入 MainWindow 构造函数中,因为在您尝试引用它时它不存在。

private void OnLoaded(object? sender, EventArgs args)
{
  if (Application.Current?.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
  {
    var screenSize = desktop.MainWindow.Screens.Primary.WorkingArea.Size;

    var windowSize = PixelSize.FromSize(ClientSize, desktop.MainWindow.Screens.Primary.Scaling);

    Position = new PixelPoint(screenSize.Width - windowSize.Width, screenSize.Height - windowSize.Height);
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.