WPF Grid响应鼠标事件
Posted lishuangquan1987
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF Grid响应鼠标事件相关的知识,希望对你有一定的参考价值。
在编写控件模板时,有时候使用Grid套一层TextBlock,要求鼠标移动到控件时,TextBlock的字体颜色变色。
这时候就有一个需求,如何让Grid相应鼠标事件。话不多说,上测试代码:
MainWindow.xaml:
<Window x:Class="GridTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:GridTest"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
<Grid Height="100" Width="100" MouseLeftButtonDown="Grid_MouseLeftButtonDown"></Grid>
</StackPanel>
</Window>
后台代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace GridTest
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
public MainWindow()
InitializeComponent();
private void Grid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
MessageBox.Show("鼠标按下");
测试鼠标点击:鼠标移动上去点击,发现没有触发Grid的MouseLeftButtonDown事件
当把Grid加上Background="Gray"
时测试结果如下:
如何让Grid不可见,同时又能响应鼠标事件呢:
答案:Background="Transparent"
测试结果如下:
结论:当不设置Grid的背景色时,Grid的背景色为null
,此时Grid不响应任何鼠标事件,当设置Grid的背景色为一个值(包含透明色)时,Grid就可以响应鼠标事件了
以上是关于WPF Grid响应鼠标事件的主要内容,如果未能解决你的问题,请参考以下文章