2011-07-10 32 views
1

我有一个非常简单的要求,即我想要一个合成事件发送到的UIElement,在这种情况下,一个网格。我想要的只是我能够将一个合成事件发送给UIElement。模拟事件没有继承在Windows Phone 7

例如,

StackPanel myPanel; 
StackPanel topPanel; 

topPanel.MouseLeftButtonUp += new MouseButtonEventHandler(topPanel_MouseLeftButtonUp); 

private void topPanel_MouseLeftButtonUp(object sender, MouseEventArgs args) { 
    // Here I want to send the MouseLeftButtonUp event to myPanel 
} 

有可能使用RaiseEvent,但它是一个受保护的事件,所以我不能只是把它在任何UIElement的一个实例。那么我该如何去发送现有类的综合事件呢?

P.S:本,我不能创建自定义继承类的原因是,目前的代码库过于庞大,我采取这样的做法,将在情况需要变更的数量是不可行的。

任何帮助是极大的赞赏。

问候, roahn

回答

0

反而引发事件的,你可以只从事件处理程序相关代码移到方法。然后,只要您想模拟按钮点击,就可以调用该方法。然而,如果你想模拟按钮点击一个元素,你可以这样做:

//Assuming myPanel_MouseLeftButtonUp is the event handler for myPanel 
myPanel_MouseLeftButtonUp(null, null); 
+0

问题是我不能只调用事件处理程序,因为我依靠的事实StackPanel上的事件泡到其他UI元素的StackPanel中包含的,也是他们的事件处理程序,我关心的问题。此外,在实时生成的那些对象,因此依靠这取决于该StackPanel中的孩子正是被点击的设置“发件人”属性。 –

相关问题