簡體   English   中英

在每個窗口中使用一個彈出控件在WPF中顯示進度消息

[英]using one popup control for every window to show progress message in WPF

我的WPF應用程序中大約有15個窗口,每個窗口都調用一個類進行操作

例如:加載,刪除等,並且我不想在每個窗口中添加彈出控件。 每次操作

操作類中的方法將Window作為參數,有什么方法可以顯示

操作方法在該窗口彈出操作進度信息?

或其他任何更好的方法來顯示進度消息,同時顯示進度消息

應該禁用該窗口以停止用戶進行任何其他操作。

謝謝

用您所說的,您的狀態窗口是模式窗口。 如果讓所有操作類都實現用於報告進度的相同接口(我想還可以告知正在完成的操作),則可以創建一個唯一的狀態窗口,以實例化該操作的完成狀態,並調用與ShowDialog。

我將創建一個靜態類來管理狀態消息,並讓主窗口在這些消息進入時進行監聽。這樣,只有主窗口負責顯示彈出窗口,而所有其他窗口都轉到一個位置以報告狀態更新。

偽:

static class StatusManager
{
    delegate onMessageReceivedEvent(string message);
    static event onMessageReceivedEvent OnMessageReceived;

    static void PostMessage(string message)
    {
        if(OnMessageReceived != null)
             OnMessageReceived.Invoke();
    }
}

在主窗口中,只需+ = OnMessageReceived並在事件后發布消息。

另外,如果您只希望狀態消息一直保持到所有其他操作都完成,請保留運行窗口的計數器,並在窗口達到0時關閉彈出窗口。 您可以簡單地在彈出窗口中監聽事件並以這種方式更新gui。 只要記住檢查調度程序以確保其安全即可更新gui。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM