2011-06-08 63 views
0

我的應用程序中有一些自定義光標。 我使用 informations found on the second answer here來創建我的自定義光標。這很好。 我的問題是,當我將鼠標移到彈出窗口上時,鼠標顯示爲默認的光標。奇怪的是,當我將鼠標移出彈出窗口時,我的自定義光標回來了。 行,所以我實例化我的光標,像這樣:在WPF彈出窗口中保留自定義光標

UserControl.xaml:

<TextBlock 
     x:Name="SupprimerV" 
     x:Key="SupprimerV" 
     Cursor="../Utils/Supprimer.cur"/> 

在UserControl.xaml.cs:

this.Cursor = ((TextBlock)this.FindResource("SupprimerV")).Cursor; 

然後,我打電話從派生我自己的控制SimplePopup Popup like so:

_pop = new SimplePopup(this); //Irrelevant information omitted 

SimplePopup.cs:

public simplePopup(FrameworkElement relativeTo) 
    { 
     this._relativeTo = relativeTo; 
     this.Cursor = relativeTo.Cursor; //Trying to set the cursor of the popup but dosent work 
     ... 
    } 

我試圖設置彈出光標,但它dosent似乎工作。 遊標在我的UserControl上正常工作,但當鼠標懸停在Popup上時會失敗。

我錯過了什麼? 是否阻止我的光標在Popup上正常工作?

日Thnx的幫助, 對不起拼寫錯誤^^

回答

0

行,所以我找到了一種方法,使我的光標正確顯示在我的彈出窗口。 我的SimplePopup使用邊框作爲其子元素。我試圖在邊境的光標設置爲_relativeTo光標這樣的:

popBorder.Cursor = _relativeTo.Cursor; 

,它的工作 我想知道爲什麼,所以我做了一些研究,我發現這個有趣的一段文字:

臨c#2010中的WPF - 第6章186頁:「如果你想看到 你的內容,你必須設置Background屬性,因爲它不會從你的窗口繼承,你需要 你自己添加邊框(Border元素的作品對於這個 目的來說非常好)。「 http://archon.name/files/books/programming/Apress.Pro.WPF.in.C%23.2010.Windows.Presentation.Foundation.in.NET.4.pdf

顯然,彈出窗口不會繼承其創建者的任何屬性(包括光標)。

我想既然彈出沒有外觀可言,他的光標的財產dosent傳播了它的元素樹...

我很驚訝,因爲在我的主應用程序,我在設置光標的第一要素樹,它似乎傳播得很好,或者至少它可以出現在子元素上。

我不知道是否是其他原因,或者如果此行爲出現在WPF中的任何其他地方。