2011-06-08 136 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中的任何其他地方。