C# Avalonia 使用程式碼 執行(觸發)按鈕事件 進而執行對應事件函數

C# Avalonia 使用程式碼 執行(觸發)按鈕事件 進而執行對應事件函數

C# Avalonia 使用程式碼 執行(觸發)按鈕事件 進而執行對應事件函數

資料來源:chatgpt

axaml

<Button Name="myButton" Content="Click Me" Click="MyButton_Click"/>

code01

private void MyButton_Click(object sender, RoutedEventArgs e)
{
    Console.WriteLine("Button clicked!");
}

code02[呼叫方案]

MyButton_Click(myButton, new RoutedEventArgs());//這樣就等於觸發了按鈕事件,但不是真的「模擬使用者點擊」。

myButton.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));//這個方法會完全觸發事件機制,就像使用者真的點擊了一樣。

One thought on “C# Avalonia 使用程式碼 執行(觸發)按鈕事件 進而執行對應事件函數

  1. private async void Delete_Clicked(object sender, PointerPressedEventArgs e)
    {
    }

    我想要用程式呼叫他

    gemini AI:因為PointerPressedEventArgs較難模擬

    // 1. 抽離出來的邏輯
    private async Task PerformDeleteAsync()
    {
    // 這裡放原本在 Delete_Clicked 裡的刪除邏輯
    await Task.Delay(100); // 模擬異步操作
    }

    // 2. 原本的事件處理器呼叫它
    private async void Delete_Clicked(object sender, PointerPressedEventArgs e)
    {
    await PerformDeleteAsync();
    }

    // 3. 你想在程式碼其他地方呼叫時
    private async void AnotherMethod()
    {
    await PerformDeleteAsync();
    }

發表迴響

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