Avalonia Window的起始點設定在滑鼠座標

Avalonia Window的起始點設定在滑鼠座標

Avalonia Window的起始點設定在滑鼠座標


資料來源: copilot


xaml

<Window xmlns="https://github.com/avaloniaui"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        x:Class="YourNamespace.MainWindow"
        PointerPressed="Window_PointerPressed">
    <StackPanel>
        <TextBlock Text="Click anywhere to open a new window at mouse position" />
    </StackPanel>
</Window>


code

using Avalonia;
using Avalonia.Controls;
using Avalonia.Input;
using Avalonia.Markup.Xaml;

namespace YourNamespace
{
    public class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void InitializeComponent()
        {
            AvaloniaXamlLoader.Load(this);
        }

        private void Window_PointerPressed(object sender, PointerPressedEventArgs e)
        {
            // 獲取滑鼠座標
            var pointerPosition = e.GetPosition(this);

            // 創建並顯示新窗口
            var newWindow = new Window
            {
                Width = 200,
                Height = 100,
                Topmost = true // 保持新窗口在最前
            };

            // 設定新窗口的起始位置
            newWindow.Position = new PixelPoint((int)pointerPosition.X, (int)pointerPosition.Y);

            newWindow.Show();
        }
    }
}

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *