gpt4 book ai didi

silverlight - 事件冒泡问题 (ScrollViewer)

转载 作者:行者123 更新时间:2023-12-03 17:20:31 25 4
gpt4 key购买 nike

我有冒泡事件的问题。我设法在边框、网格、堆栈面板中冒泡事件,但不在 ScrollViewer 中

如果您查看下面的示例,您会注意到当您单击 TextBlock 时,事件会冒泡到 Grid。但是当我包含 ScrollViewer 时,事件会在此处停止并且不会发送到 Grid。

有没有人现在为什么会发生这种情况,是否可以修复?我真的需要能够通过 ScrollViewer 冒泡事件,因为我一直在使用它。

<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;
}
}

最佳答案

使用 AddHandler(yourDelegate, True);添加事件处理程序的语法,这将忽略可视化树中其他控件设置的已处理标志。

关于silverlight - 事件冒泡问题 (ScrollViewer),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3198291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com