簡體   English   中英

檢測頁面是否導航到或關閉 C#

[英]Detecting whether page is navigated to or off C#

在我的 WPF 應用程序中,我有多個頁面。 一頁稱為“啟動”,這是大多數時間顯示的一頁。 NFC 閱讀器在后台線程中運行,每次掃描卡時,它都會執行代碼。

我的導航通過一個名為“InstanceContainer.cs”的類來工作,它基本上只是將所有實例保存到我的頁面中,然后我使用(例如) NavigationService.Navigate(InstanceContainer.startup());

但是,我希望它僅在掃描卡時顯示“啟動”時執行所述代碼。 我的想法是設置一個像public bool startupShown; 在“啟動”內部,然后在運行 NFC 掃描的線程中進行檢查。 但是我如何巧妙地更新這個布爾值? 當然,它可以在每次導致“啟動”的按鈕單擊時手動更新,但必須有比這更好的方法。

我發現了這一點,但不太了解它,也無法讓它工作。 提前致謝

您可以使用PageIsLoaded屬性來確定它當前是否已加載並顯示在Frame中。

但是,不能直接從后台線程訪問此屬性,因此您可以將自己的字段或屬性添加到起始頁並處理LoadedUnloaded事件來設置它...:

public partial class StartupPage : Page
{
    public bool startupShown;

    public Page1()
    {
        InitializeComponent();
        Loaded += (s, e) => startupShown = true;
        Unloaded += (s, e) => startupShown = false;
    }
}

...或使用調度程序從后台線程訪問內置的Loaded屬性:

Page page = InstanceContainer.startup();
bool isloaded = page.Dispatcher.Invoke(() => page.IsLoaded);

暫無
暫無

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

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