我在派生自的类中有此代码UserControl
(从Window派生时的行为相同)。该代码是一个项目中的一个非常简单的示例(隔离问题),我只想在鼠标按下和鼠标向上之间用鼠标移动一些行(我不能直接引用这些行),唯一的方法是删除它们并再次将它们添加到正确的位置。
protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
{
m_Grid.Children.Clear( );
m_Grid.Children.Add(new Button());
base.OnMouseLeftButtonDown(e);
}
protected override void OnMouseLeftButtonUp(MouseButtonEventArgs e)
{
m_Grid.Children.Clear();
base.OnMouseLeftButtonUp(e);
}
m_Grid
像这样声明的地方:
private readonly Grid m_Grid;
这种形式OnMouseLeftButtonUp
永远不会被调用。如果我删除:
m_Grid.Children.Clear( );
m_Grid.Children.Add(new Button());
OnMouseLeftButtonUp
被调用。
你知道为什么吗?