UIElement.IsMouseCaptured属性的应用
一个只读属性,该值描述了此元素是否捕获到了鼠标,如果该值为true,则说明此元素捕获到了鼠标;否则,未捕获到(例如:当鼠标进入到一个Button的可视化范围之内,当Button按钮外观效果发生了变化时,则说明Button按钮捕获了鼠标,此时读取Button的IsMouseCaptured属性值,会得到true)。
例子1:如果鼠标捕获发生在别处,则鼠标捕获设置到该元素。 如果元素捕获了鼠标,则通过使用 null 输入调用 Mouse.Capture 来清除鼠标捕获
private void CaptureMouseCommandExecuted(object sender, ExecutedRoutedEventArgs e)
{
MessageBox.Show("Mouse Command");
IInputElement target = Mouse.DirectlyOver;
target = target as Control;
if (target != null)
{
if (!target.IsMouseCaptured)
{
Mouse.Capture(target);
}
else
{
Mouse.Capture(null);
}
}
}
例子二:当Button按钮捕获到鼠标时,我们设置Rectangle的填充效果为press效果。
<ControlTemplate TargetType="{x:Type Button}">
<Grid>
<Rectangle x:Name="recOk" StrokeThickness="0">
<Rectangle.Fill>
<ImageBrush ImageSource="../Images/MessageBoxImg/Ok.png"/>
</Rectangle.Fill>
</Rectangle>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseCaptured" Value="True"><!--当Button按钮捕获到了鼠标,则Button.IsMouseCaptured==true;--当Button.IsMouseCaptured==true,则Button按钮捕获到了鼠标-->
<Setter TargetName="recOk" Property="Fill">
<Setter.Value>
<ImageBrush ImageSource="../Images/MessageBoxImg/Ok_press.png"/>
</Setter.Value>
</Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
2013-09-06 Arcgis 中国区技术支持 官网
2013-09-06 【转】ArcGIS API for Silverlight/WPF 2.1学习笔记(四)
2013-09-06 【转】ArcGIS API for Silverlight/WPF 2.1学习笔记(五)
2013-09-06 【转】ArcGIS API for Silverlight/WPF 2.1学习笔记(三)
2013-09-06 【转】ArcGIS API for Silverlight/WPF 2.1学习笔记(二)
2013-09-06 【转】ArcGIS API for Silverlight/WPF 2.1学习笔记(一)
2013-09-06 在WinForm应用程序中嵌入WPF控件