我有XAML:
<Grid MouseMove="onMouseMove" >
<ItemsControl Name="btnTableImageList">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Content="{Binding Content}"
Height="{Binding Height}"
Width="{Binding Width}"
Tag="{Binding Tag}"
Margin="{Binding Margin}"
Background="{Binding Background}"
HorizontalAlignment="Center"
MouseDown="tblButton_MouseDown"
MouseUp="tblButton_MouseUp"
Click="ClickHandlerTableBtn"
TextBlock.TextAlignment="Center" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
后面的代码:
private void onMouseMove(object sender, MouseEventArgs e)
{
lblCoord.Content = Mouse.GetPosition(Application.Current.MainWindow);
}
在表单上有一个名为lblCoord的Label,并且在加载表单后会创建两个按钮。
我想在与网格相关的lblCoord中显示鼠标坐标,但是仅当我将鼠标光标移到放置在该网格内的任何按钮上时才显示坐标。
我的猜测是我将MouseMove =“ onMouseMove”放在错误的位置。
感谢您的帮助。
答案 0 :(得分:2)
当您将Grid的Background
设置为非透明时,它将起作用
默认情况下,Grid的背景是透明的。如果是透明的,则也可以在设置Background="Transparent"
时使用鼠标事件。
鼠标事件使用背景恕我直言处理最近的父元素