बच्चे को FrameworkElement
में ऑन-हाउस ईवेंट दिखाई देने का प्रयास कर रहा है। मूल तत्व Panel
है (और Background
संपत्ति शून्य नहीं है)।WPF FrameworkElement माउस इनपुट प्राप्त नहीं कर रहा
class MyFrameworkElement : FrameworkElement
{
protected override void OnMouseDown(MouseButtonEventArgs e)
{
// Trying to get here!
base.OnMouseDown(e);
}
}
public class MyPanel : Panel
{
protected override void OnMouseDown(MouseButtonEventArgs e)
{
// This is OK
base.OnMouseDown(e);
}
}
OnMouse कहा जाता हो जाता है कभी नहीं, घटना हमेशा बिना क्रिया है और स्नूप मुझसे कहता है कि कराई घटना ही कभी जहाँ तक Panel
तत्व के रूप में प्राप्त करने के लिए लगता है।
<Window
x:Class="WpfApplication5.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:l="clr-namespace:WpfApplication5"
Title="Window1" Height="300" Width="300">
<Border x:Name="myBorder" Background="Red">
<l:MyPanel x:Name="myPanel" Background="Transparent">
<l:MyFrameworkElement x:Name="myFE"/>
</l:MyPanel>
</Border>
</Window>
डॉक्स का कहना है कि FrameworkElement
इनपुट को संभालता है, लेकिन इस परिदृश्य में क्यों नहीं?
आपकी प्रतिक्रिया के लिए धन्यवाद। मैं थोड़ी देर के लिए खेल रहा हूं और फ्रेमवर्क कार्य में निम्नलिखित जोड़कर मुझे जिस व्यवहार की आवश्यकता है, उसे प्राप्त करने में कामयाब रहा: संरक्षित ओवरराइड शून्य ओवररेंडर (ड्रॉइंग कॉन्टेक्स्ट ड्राइंग कॉन्टेक्स्ट) { आकार रेंडर आकार = यह। रेंडर आकार; रेक्ट रेक्ट = नया रेक्ट (रेंडरसाइज); पेन पेन = नया पेन (ब्रश। ट्रांसपेरेंट, 0.0); drawingContext.DrawRectangle (ब्रश। ट्रांसपेरेंट, पेन, रेक्ट); } शायद फ्रेमवर्क एलिमेंट आकार में शून्य है जब तक इसमें कुछ जोड़ा नहीं जाता है? – lava