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>

时间: 2024-12-14 12:59:51

UIElement.IsMouseCaptured属性的应用的相关文章

[UWP]UIElement.Clip虽然残废,但它还可以这样玩

原文:[UWP]UIElement.Clip虽然残废,但它还可以这样玩 1. 复习一下WPF的UIElement.Clip# 用了很久很久的WPF,但几乎没有主动用过它的Clip属性,我只记得它很灵活,可以裁剪出多种形状.在官方文档复习了一下,大致用法和效果如下: Copy <Image Source="sampleImages\Waterlilies.jpg" Width="200" Height="150" HorizontalAlig

WPF中的事件列表 .

以下是WPF中的常见事件汇总表(按字母排序),翻译不见得准确,但希望对你有用. 事件 描述 Annotation.AnchorChanged 新增.移除或修改 Anchor 元素时发生. Annotation.AuthorChanged 新增.移除或修改 Author 元素时发生. Annotation.CargoChanged 新增.移除或修改 Cargo 元素时发生. AnnotationStore.AnchorChanged 存放区中任何注释上的 Anchor 元素变化时发生. Annot

DockPanel 类

DockPanel 类 .NET Framework 4.5 其他版本 此主题尚未评级 - 评价此主题 定义您可水平或垂直排列子元素的区域,互相. 继承层次结构 System.Object   System.Windows.Threading.DispatcherObject    System.Windows.DependencyObject      System.Windows.Media.Visual        System.Windows.UIElement          Sy

《深入浅出WPF》笔记——绘画与动画

<深入浅出WPF>笔记——绘画与动画 本篇将记录一下如何在WPF中绘画和设计动画,这方面一直都不是VS的强项,然而它有一套利器Blend:这方面也不是我的优势,幸好我有博客园,能记录一下学习的过程.在本记录中,为了更好的理解绘画与动画,多数的例子还是在VS里面敲出来的.好了,不废话了,现在开始. 一.WPF绘画 1.1基本图形 在WPF中可以绘制矢量图,不会随窗口或图型的放大或缩小出现锯齿或变形,除此之外,XAML绘制出来的图有个好处就是便于修改,当图不符合要求的时间,通常改某些属性就可以完成

WPF入门教程系列(二) 深入剖析WPF Binding的使用方法

WPF入门教程系列(二) 深入剖析WPF Binding的使用方法 同一个对象(特指System.Windows.DependencyObject的子类)的同一种属性(特指DependencyProperty)只能拥有一个binding. 这一点可以通过设置binding对象的方法名得知: public static BindingExpressionBase SetBinding( DependencyObject target, DependencyProperty dp, BindingB

WP8.1 UI 编程 四、图形

1. 图形中常用的基本的类 Point:(x,y)坐标确定的点. Size:由Height和Width确定高宽的大小类. Rect:矩形类,显然可以由一个Point和一个Size来确定. Color:由R.G.B.A确定的颜色类. Geometry和Shape都是定义空间区域的类,Shape拥有相关的画笔并可以呈现到屏幕,而Geometry不会. Shape常用属性: Fill:填充的Brush Stroke:笔触,边界颜色Brush StrokeThickness:边界厚度 Stretch:填

wp8.1 Study8:页面过渡和主题动画(Page transition and Theme animations)

一.在WP8.1中是有动画(Animation)的: 页面导航(默认为旋转式Turnstile).PointerDown/up(默认是倾斜).页面旋转.MenuFlyout出现等等 二.页面过渡(Page transition) 1.默认的动画是旋转式(Turnstile). 2.除了默认的动画,我们还可以运用ContinuumNavigationTransitionInfo.Stagger.Slide等类似过渡. 三.重写默认过渡/动画 (1)在控件中,我们可以这样做,XAML代码如下: <!

WPF实现渐变淡入淡出的登陆窗口

1.实现原理 1.1 利用UIElement.OpacityMask属性,用于改变对象区域的不透明度的画笔.可以使元素的特定区域透明或部分透明,从而实现比较新颖的效果. 1.2 OpacityMask属性接受任何画刷,可利用LinearGradientBrush线性渐变画刷,通过对渐变画刷中各颜色点加以动画处理即可. 2.渐变淡入实现 渐变淡入效果,可通过事件触发器触发Loaded事件实现,所以可以仅用前端XAML语言实现. 2.1 设置对象的OpacityMask属性 <Grid.Opacit

再论WPF中的UseLayoutRounding和SnapsToDevicePixels

以下摘自: http://blog.csdn.net/muzizongheng/article/details/14163227    的博客: 再论WPF中的UseLayoutRounding和SnapsToDevicePixels 分类:             自我心的              2013-11-05 11:16     732人阅读     评论(0)     收藏     举报 wpf自我心的UseLayoutRoundingGridSplitter模糊 最近在调试项目