WPF MouseDown事件未在控件中到处触发

大马士革

我目前正在与WPF的另一项斗争作斗争,即鼠标事件。

我基本上有一个非常简单的控件(一个Border包含,Grid而它本身具有一些TextBlocks)。我想实现一个简单的行为:双击应该把控制进入编辑模式(这实际上皮张TextBlocksTextBoxes绑定到相同的数据。

没什么好看的,对吧?好吧,我在挣扎。MouseDoubleClick链接到我UserControl时,我在控制点击(如,点击一个公正的火灾TextBlock)。如果单击之间的空白TextBlocks,则不会触发任何内容。甚至没有MouseDown

我如何使其工作以捕捉每次鼠标单击?我以为将MouseDown事件链接到aBorder应该会抓住边框上的每一次点击,但是...最终却无法捕捉到边框上空白的点击。

这是我为您运行的一些草稿代码:

XAML:

<StackPanel Orientation="Vertical">
    <Border Height="400" Width="400" HorizontalAlignment="Center" VerticalAlignment="Center" BorderBrush="Black" BorderThickness="2"
        MouseDown="Border_MouseDown" MouseUp="Border_mouseUp">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*" />
                <ColumnDefinition Width="*" />
                <ColumnDefinition Width="*" />
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition Height="*" />
                <RowDefinition Height="*" />
                <RowDefinition Height="*" />
            </Grid.RowDefinitions>

            <TextBlock Text="BLUFF" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Center" VerticalAlignment="Center"/>
            <TextBlock Text="BLUFF" Grid.Column="0" Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Center"/>
            <TextBlock Text="BLUFF" Grid.Column="0" Grid.Row="2" HorizontalAlignment="Center" VerticalAlignment="Center"/>
            <TextBlock Text="BLUFF" Grid.Column="1" Grid.Row="0" HorizontalAlignment="Center" VerticalAlignment="Center"/>
            <TextBlock Text="BLUFF" Grid.Column="1" Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Center"/>
            <TextBlock Text="BLUFF" Grid.Column="1" Grid.Row="2" HorizontalAlignment="Center" VerticalAlignment="Center"/>
            <TextBlock Text="BLUFF" Grid.Column="2" Grid.Row="0" HorizontalAlignment="Center" VerticalAlignment="Center"/>
            <TextBlock Text="BLUFF" Grid.Column="2" Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Center"/>
            <TextBlock Text="BLUFF" Grid.Column="2" Grid.Row="2" HorizontalAlignment="Center" VerticalAlignment="Center"/>
        </Grid>

    </Border>

    <TextBlock Height="100" Width="300" HorizontalAlignment="Center" TextAlignment="Center" x:Name="thetext" Visibility="Collapsed"
               Foreground="White" Background="Red" Text="CLICKED!" />
</StackPanel>

后面的代码:

private void Border_MouseDown(object sender, MouseButtonEventArgs e)
{
    thetext.Visibility = Visibility.Visible;
}

private void Border_mouseUp(object sender, MouseButtonEventArgs e)
{
    thetext.Visibility = Visibility.Collapsed;
}

现在,尝试单击“ BLUFF”文本之一:将出现“ CLICKED”文本。尝试单击TextBlocks之间的其他位置:没有任何反应。

谢谢!

盐酸
<StackPanel Background="Transparent" ... >

要么

<Border Background="Transparent" ... >

应该做到这一点...

这使网格透明,但是对于鼠标单击可见。

看看这里形成更多的信息。

在其他情况下,您必须使用PreviewXXX-事件,这是子元素“吞食”事件的时候,但是在您的情况下,上面的内容正是您想要的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

WPF MouseDown事件未在控件中到处触发

来自分类Dev

WPF KeyBinding 命令未在自定义控件中触发

来自分类Dev

鼠标事件未在自定义控件C#WPF上触发

来自分类Dev

WPF WebBrowser控件-未触发“导航”事件

来自分类Dev

WPF MouseDown事件

来自分类Dev

在MouseDown事件中获取形状的WPF名称

来自分类Dev

在WPF中,为什么MouseLeave触发而不是MouseDown?

来自分类Dev

即使WPF中有外部控件,也要触发MouseUp事件

来自分类Dev

使用WPF WebBrowser控件进行拖放-Drop事件未触发

来自分类Dev

SelectionChanged 事件不会为派生的 ComboBox 控件触发 - WPF

来自分类Dev

在WPF中MouseDown / Up事件无法正常工作

来自分类Dev

在WPF中从View触发事件到ViewModel

来自分类Dev

WPF 中的事件触发器

来自分类Dev

WPF中的可选控件

来自分类Dev

WPF无法从MouseDown事件获得触摸位置

来自分类Dev

从 ItemsControl (WPF MVVM) 触发事件

来自分类Dev

WPF ContentRendered 事件未触发?

来自分类Dev

WPF中的自定义控件模板的Click事件

来自分类Dev

在显示PDF文档的WPF WebBrowser控件中捕获单击事件

来自分类Dev

WPF:如何从模板引发的事件中获取控件的属性值

来自分类Dev

从 WPF 中的主窗口引发用户控件上的事件

来自分类Dev

wpf控件中绑定事件之前和之后

来自分类Dev

在WPF中释放鼠标左键时如何触发事件?

来自分类Dev

为什么我在WPF中的触发事件不起作用?

来自分类Dev

如何通过WPF中的事件触发嵌套元素动画播放?

来自分类Dev

在KinectExplorer-WPF解决方案中连续触发事件

来自分类Dev

在WPF MVVM中停止隧道事件触发器?

来自分类Dev

来自其他控件的WPF触发

来自分类Dev

用户控件的WPF LostFocus未触发

Related 相关文章

热门标签

归档