2008-12-24 114 views
5

我有2個選項卡項目。在選項卡1中,我有一個對應於窗口大小調整事件的控件,需要調用PointToScreen()。你怎麼知道你的WPF控件是否被渲染?

問題是選項卡號2處於活動狀態,我調整窗口大小,第1號選項卡中的控件反應並失敗,因爲它的視覺效果沒有呈現,而我得到「此視覺效果未連接到PresentationSource」異常。

你知道如何在我調用PointoScreen之前檢查這個案例嗎?

感謝 阿里爾

回答

13

您可以檢查「IsVisible」 - 這相當於,而不是作爲比較可見性屬性的快捷方式,但也會告訴您是否正在屏幕上呈現該東西。我不完全確定這是如何影響UIElements的虛擬化,但我認爲它正確地意識到這些情況。

+0

這很明顯,但非常有幫助。謝謝! – 2014-05-07 20:56:58

0

我會執行,這是在後面的代碼,添加和刪除根據所選擇的選項卡中的事件處理程序的方式。當選擇Tab1時,對Window Resize Event的控件執行AddHandler,並且當Tab1未被選中時(即不同的標籤到達前面),爲控件執行RemoveHandler。

相關問題