के साथ समस्याएं मुझे बबबेलिंग घटनाओं में कोई समस्या है। मैं सीमाओं, ग्रिड, स्टैकेपनेल में बबल घटनाओं का प्रबंधन करता हूं, लेकिन स्क्रॉलवियरइवेंट बबबेलिंग (स्क्रॉलव्यूयर)
यदि आप नीचे दिए गए उदाहरण को देखते हैं तो आप देखेंगे कि जब आप टेक्स्टब्लॉक पर क्लिक करते हैं तो ईवेंट ग्रिड तक बबेल किया जाता है। लेकिन जब मैं स्क्रॉलव्यूयर शामिल करता हूं तो ईवेंट यहां रुक जाता है और ग्रिड तक नहीं भेजा जाता है।
क्या कोई अब इस खुशी को देखता है और यदि इसे ठीक किया जा सकता है? मुझे वास्तव में स्क्रॉल व्यूअर के माध्यम से ईवेंट को बबल करने में सक्षम होना चाहिए क्योंकि मैं इसे हर समय उपयोग करता हूं।
<Grid MouseLeftButtonDown="Grid_MouseLeftButtonDown">
<!--<ScrollViewer MouseLeftButtonDown="ScrollViewer_MouseLeftButtonDown">-->
<StackPanel Orientation="Vertical" MouseLeftButtonDown="StackPanel_MouseLeftButtonDown">
<TextBlock Text="Click me to bubble an event" MouseLeftButtonDown="TextBlock_MouseLeftButtonDown"/>
</StackPanel>
<!--</ScrollViewer>-->
</Grid>
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
}
private void Grid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
MessageBox.Show("LayoutRoot clicked");
}
private void ScrollViewer_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
MessageBox.Show("ScrollViewer clicked");
e.Handled = false;
}
private void StackPanel_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
MessageBox.Show("StackPanel clicked");
e.Handled = false;
}
private void TextBlock_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
MessageBox.Show("Textblock clicked");
e.Handled = false;
}
}
ScrollViewer तरह
ScrollViewer
अधिभावी द्वाराMouseButtonEventArgs
परe.Handled
रोका जा सकता है एक सील बंद वर्ग और से, का उपयोग AddHandler प्राप्त नहीं किया जा सकता है। – Adam