[英]How do I access pointer events for WinUi3 TeachingTips?
在我的應用程序中,當指針懸停在某些控件上時會出現教學提示,當指針離開這些控件時會消失(我將這些稱為“觸發控件”)。 這是使用觸發控件的PointerEntered
和PointerExited
事件實現的。
教學提示的Target
不是觸發控件,這意味着教學提示有時可以覆蓋觸發控件。 發生這種情況時,觸發控件的PointerExited
事件被觸發,隱藏了 TeachingTip。 這樣循環,導致教學提示閃爍。
我嘗試了兩種方法來阻止這種情況。
首先,我嘗試使用 TeachingTip 的指針事件來阻止它在指針超過它時關閉,但是似乎我需要使用教學提示內容的 Pointer 事件來實現這一點,但無法弄清楚如何訪問內容。 我只使用 TeachingTip 的Title
和Subtitle
屬性來設置內容,在Loaded
事件期間, Content
屬性是 null。 [編輯:這是錯誤的,請參閱下面的答案] 我沒有應用自定義模板,因此無法使用此處描述的方法。
接下來,我嘗試通過將IsHitTestVisible
設置為false
來將教學提示“不可見”設置為指針事件,但這不起作用。
請有人可以讓我知道如何實現這一目標嗎?
當我寫這個問題時,我誤解了模板是如何使用的, 這里的答案確實提供了一個解決方案:
internal class CustomTeachingTip : TeachingTip
{
protected override void OnApplyTemplate()
{
base.OnApplyTemplate();
if (GetTemplateChild("ContentRootGrid") is Grid rootGrid)
{
rootGrid.PointerEntered += (o, e) => DoStuff();
rootGrid.PointerExited += (o, e) => DoOtherStuff();
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.