У меня есть Adorner, который украшает границу (см. Скриншот ниже). Однако событие MouseDown для Adorner вызывается только при нажатии на элемент в Adorner. Мне нужно, чтобы событие MouseDown было вызвано при нажатии на любое место в надстройке над украшенным элементом. Как это может быть сделано? Нужно ли добавить прозрачный элемент управления в рекламодатель или есть другой способ для этого? Спасибо за любую помощь!
Скриншот и проект VS 2008: http://cid -0432ee4cfe9c26a0.skydrive.live.com / browse.aspx /% C3% 96ffentlich? Uc = 2
Код для рекламодателя:
class myAdorner : Adorner
{
public myAdorner(UIElement element)
: base(element)
{
this.MouseDown += new System.Windows.Input.MouseButtonEventHandler(myAdorner_MouseDown);
}
void myAdorner_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
MessageBox.Show("ok");
}
// Draws two rectangles: one in the upper-left and another one in the lower-right corner
protected override void OnRender(System.Windows.Media.DrawingContext drawingContext)
{
Size size = this.AdornedElement.RenderSize;
Rect r1 = new Rect(0.5, 0.5, 20, 20);
Rect r4 = new Rect(size.Width - 20.5, size.Height - 20.5, 20, 20);
SolidColorBrush brush = new SolidColorBrush(Colors.AliceBlue);
Pen pen = new Pen(Brushes.Black, 1);
drawingContext.DrawRectangle(brush, pen, r1);
drawingContext.DrawRectangle(brush, pen, r4);
}
}