मेरे पास एक एडॉर्नर है जो सीमा को सजाने वाला है (कृपया नीचे स्क्रीनशॉट देखें)। एडॉर्नर के लिए माउसडाउन इवेंट हालांकि एडॉर्नर में किसी तत्व पर क्लिक करते समय केवल उठाया जाता है। सजाने वाले तत्व के ऊपर सजावट में किसी भी स्थान पर क्लिक करते समय मुझे उठाए जाने के लिए माउसडाउन इवेंट की आवश्यकता होती है। यह कैसे किया जा सकता है? क्या मुझे सजावट में पारदर्शी नियंत्रण जोड़ना है या इसके लिए कोई और तरीका है? किसी भी मदद के लिए धन्यवाद!डब्ल्यूपीएफ: एडॉर्नर हिट टेस्टिंग/माउसडाउन इवेंट
स्क्रीनशॉट और 2008 वी.एस. परियोजना: adorner के लिए 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);
}
}
आपके उत्तर के लिए धन्यवाद, लेकिन आप एक सजावट पर ब्रश कैसे सेट करते हैं? drawingcontext और पूरे rendersize भरें? –
ठीक है, इसे मिला (केवल एक पारदर्शी आयत खींचने के लिए Drawcontext का उपयोग करें, कुछ खास नहीं) और यह ठीक काम करता है! आपका बहुत बहुत धन्यवाद! अभी भी सोच रहा है कि क्या आपको इसके लिए एक अतिरिक्त आयत की ज़रूरत है। वैसे भी, यह अभी काम करता है। –