我试图创建一个连接两个对象的程序。当第一个对象上的MouseDown
时,我记得它(没有释放鼠标按钮),当我在第二个对象上MouseUp
时,我想在它们之间建立连接,但是当MouseUp
时在第二个对象上,此事件在第一个对象上触发。
private void myThumb1_MouseDown(object sender, MouseButtonEventArgs e)
{
inherObj1 = mt;
connector = new Line
{
X1 = e.GetPosition(myCanvas).X,
Y1 = e.GetPosition(myCanvas).Y,
X2 = e.GetPosition(myCanvas).X,
Y2 = e.GetPosition(myCanvas).Y,
Stroke=Brushes.Black
};
myCanvas.Children.Add(connector);
}
private void myThumb1_MouseUp(object sender, MouseButtonEventArgs e)
{
MyThumb mt = sender as MyThumb;
if(isInher)
{
inherObj2 = mt;
CreateInher(inherObj1, inherObj2);
}
e.Handled = true;
}
据我了解,MouseUp
附加到MouseDown
工作的对象。有没有办法解决这个问题?
答案 0 :(得分:0)
也许你可以利用路由事件?如果两个控件都在同一个父控件中,则可以处理父控件中子控件的事件,如下所示:
的Xaml:
<Border Height="50" Width="300" BorderBrush="Gray" BorderThickness="1">
<StackPanel Background="LightGray" Orientation="Horizontal" Button.Click="CommonClickHandler">
<Button Name="YesButton" Width="Auto" >Yes</Button>
<Button Name="NoButton" Width="Auto" >No</Button>
<Button Name="CancelButton" Width="Auto" >Cancel</Button>
</StackPanel>
</Border>
这只处理Button.Click事件,但对于MouseDown / MouseUp应该是可能的。