У меня есть UserControl, где я переопределяю некоторые события, подобные этому:
public class MyControl: UserControl
{
protected override void OnMouseLeftButtonUp(MouseButtonEventArgs e)
{
base.OnMouseLeftButtonUp(e);
// handle mouse event up
}
}
Я добавляю этот элемент управления в другой UserControl -> Grid, для этой Grid зарегистрирован MouseUp.
public class MyParent: UserControl
{
private void Grid_MouseUp(object sender, MouseButtonEventArgs e)
{
// handle grid mouse event
}
}
А в MyParent XAML у меня просто:
<UserControl ... >
<Grid Name="Grid" MouseUp="Grid_MouseUp">
<my:MyControl Height="250" Width="310" Visibility="Visible" Opacity="1" IsEnabled="True" />
</Grid>
</UserControl>
Что я заметил, так это то, что когда я отпускаю мышь над MyControl, событие захватывается Grid и не направляется в MyControl, почему?
Как я могу получить событие MouseUp внутри класса MyControl?
EDIT
С MouseDown все работает как положено, только MouseUp не работает ... и оба события также зарегистрированы для родительского Grid, так в чем же разница?
EDIT2
Хорошо, я думаю, что нашел проблему, если я добавляю MyControl в MyParent -> Grid непосредственно в XAML, все работает хорошо, но если я добавляю это программно "MyParentInstance.Grid.Children.Add (MyControlInstance)", то у меня есть проблема выше.
Мой код для добавления элемента управления корректен?
Спасибо.