나는 국경을 장식 한 Adorner를 보유하고 있습니다 (아래 스크린 샷을보십시오). 그러나 Adorner의 MouseDown 이벤트는 adorner의 요소를 클릭 할 때만 발생합니다. 장식 된 요소 위에있는 adorner의 위치를 클릭 할 때 MouseDown 이벤트를 발생시켜야합니다. 어떻게 할 수 있습니까? 내가 adorner에 투명 컨트롤을 추가해야합니까, 아니면 다른 방법이 있습니까? 어떤 도움을 주셔서 감사합니다! adorner에 대한 http://cid-0432ee4cfe9c26a0.skydrive.live.com/browse.aspx/%C3%96ffentlich?uc=2WPF : Adorner 히트 테스트/MouseDown 이벤트
강령 :
스크린 샷 및 VS 2008 프로젝트
내가 과거에 이런 짓을 한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);
}
}
답장을 보내 주셔서 감사합니다.하지만 어떻게 adorner에 브러쉬를 설정합니까? drawingcontext와 전체 rendersize 채우기? –
좋습니다. (그냥 투명 사각형을 그리기 위해 drawingcontext를 사용하고 특별한 것은 없습니다) 잘 작동합니다! 대단히 감사합니다! 당신이 정말로 이것을 위해 여분의 직사각형을 필요로하는지 궁금해. 어쨌든 이제는 작동합니다. –