簡體   English   中英

檢測WPF控件何時相對於其父級移動

[英]Detect when WPF control moves relative to its parent

我知道如何通過TransformToAncestor方法找到相對於其父級的控件的位置,甚至還有一種方法可以確定控件是否對用戶基於該變換可見

現在我需要檢測控件位置的變化 讓我們暫時忽略效果和視覺變換以保持簡單。 我只需要監視Visual.VisualOffset中的更改。 這不是依賴項屬性,也沒有關聯的更改事件。

Visual.VisualOffset似乎只在安排階段更新。 也許UIElement.LayoutUpdated事件可以為我提供正確的通知。 但那時它是一個沒有參數的全球事件。 每當有任何變化時,我都必須迭代所有受監視的視覺效果。 每當用戶拖動某些東西時,這種迭代必須每秒進行多達60次。

我想知道是否有一些侵入性較小的東西不會迫使我重新檢查全局的所有視覺效果。

這是一個例子。 看看LazyControl源碼。 方法IsInView使用TransformToAncestor執行檢查。 每當方法所依賴的某些變化時,我都需要調用此方法。

如何覆蓋UIElement.OnRender

暫無
暫無

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

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