Thumb类,表示可由用户拖动的控件。其主要三个事件分别DragDelta,DragStarted,DragCompleted.

DragDelta——当 Thumb 控件具有逻辑焦点和鼠标捕获时,随着鼠标位置更改发生一次或多次。

DragStarted——在 Thumb 控件接收逻辑焦点和鼠标捕获时发生。

DragCompleted——在 Thumb 控件失去鼠标捕获时发生。

  1. 1 <Window.Resources>
    2 <ResourceDictionary>
    3 <ControlTemplate x:Key="template1">
    4 <Ellipse Width="60" Height="30">
    5 <Ellipse.Fill>
    6 <SolidColorBrush Color="Black"></SolidColorBrush>
    7 </Ellipse.Fill>
    8 </Ellipse>
    9 </ControlTemplate>
    10 </ResourceDictionary>
    11 </Window.Resources>
    12
    13 <Canvas Name="myCanvas">
    14 <Thumb Name="myThumb" DragDelta="onDragDelta" Background="Blue" DragStarted="myThumb_DragStarted" DragCompleted="myThumb_DragCompleted"
    15 Canvas.Left="0" Canvas.Top="0" Width="200" Height="200"/>
    16
    17 <!--Template="{StaticResource template1}",若此处采用此种方法为Thumb绑定模版,是无法通过DragStarted,DragCompleted事件来改变其背景的-->
    18 </Canvas>
  1. 1 void onDragDelta(object sender, DragDeltaEventArgs e)
    2 {
    3 Canvas.SetLeft(myThumb, Canvas.GetLeft(myThumb) + e.HorizontalChange);
    4
    5 Canvas.SetTop(myThumb, Canvas.GetTop(myThumb) + e.VerticalChange);
    6
    7 }
    8
    9 private void myThumb_DragStarted(object sender, DragStartedEventArgs e)
    10 {
    11 myThumb.Background = Brushes.Orange;
    12 }
    13
    14 private void myThumb_DragCompleted(object sender, DragCompletedEventArgs e)
    15 {
    16 myThumb.Background = Brushes.Blue;
    17 }

[转]WPF——Thumb的更多相关文章

  1. 继续聊WPF——Thumb控件

    这个控件,真不好介绍,MSDN上也是草草几句,反正就是可以让用户拖动的玩意儿,但是,你会发现,当你在该控件上拖动时,它没有反响,也就是说这个东西默认不做任何操作的,它是赖在那里什么都不干,除非你去踢上 ...

  2. 在WPF中的Canvas上实现控件的拖动、缩放

    如题,项目中需要实现使用鼠标拖动.缩放一个矩形框,WPF中没有现成的,那就自己造一个轮子:) 造轮子前先看看Windows自带的画图工具中是怎样做的,如下图: 在被拖动的矩形框四周有9个小框,可以从不 ...

  3. 【C#/WPF】用Thumb做可拖拽的UI控件

    需求:简单的可拖拽的图片 使用System.Windows.Controls.Primitives.Thumb类 前台: <Canvas x:Name="g"> < ...

  4. WPF: 旋转Thumb后,DragDelta移动距离出错的解决

    当Thumb跟随Grid旋转90度后,拖拽控件时会飞掉. <Grid x:Name="gridMain" Width="100" Height=" ...

  5. WPF 自定义列表筛选 自定义TreeView模板 自定义ListBox模板

    有很多项目,都有数据筛选的操作.下面提供一个案例,给大家做参考. 左侧是数据源,搜索框加TreeView控件,右侧是ListBox控件.在左侧数据列点击添加数据,然后点击确定,得到所筛选的数据. 下面 ...

  6. WPF CheckBox样式 ScrollViewer样式 WrapPanel、StackPanel、Grid布局

    本节讲述布局,顺带加点样式给大家看看~单纯学布局,肯定是枯燥的~哈哈 那如上界面,该如何设计呢? 1.一些布局元素经常用到.Grid StackPanel Canvas WrapPanel等.如上这种 ...

  7. WPF制作的VS黑色风格的Listbox

    最近写的一个玩具,WPF写出来的东西还是挺好看的 style.xaml <ResourceDictionary xmlns="http://schemas.microsoft.com/ ...

  8. WPF 自定义进度条

    WPF设计界面过程中,有时需要设计一种可以手动滑动修改并实时显示的进度条 进度条,效果如下: 颜色.图标.节点什么的,都可以重新替换. 前端XAML代码: <UserControl x:Clas ...

  9. WPF MultiRangeSlider 简单实现

    WPF 多滑块Slider简单实现(MultiRangeSlider) WPF中的MultiRangeSlider,网上有商业的,有开源的,找了几个都不太理想,那就自己写 一个吧,给大家提供点思路. ...

随机推荐

  1. fedora 18~20 中Qt 5.2.1 解决连接mysql数据库出现QMYSQL driver not loaded的问题

    QT       += sql //在.pro文件里加入这一句 //包含头文件 #include <QDebug> #include <QSqlQuery> #include  ...

  2. 全面解读PHP面试

    php面试考察点    1.PHP基础知识 引用变量 常量及数据类型 运算符及流程控制 自定义函数及内部函数 正则表达式 文件及目录处理 会话控制 面向对象 网络协议 开发环境相关考点 2.JavaS ...

  3. mybatis 处理CLOB/BLOB类型数据

    BLOB和CLOB都是大字段类型. BLOB是按二进制来存储的,而CLOB是可以直接存储文字的. 通常像图片.文件.音乐等信息就用BLOB字段来存储,先将文件转为二进制再存储进去.文章或者是较长的文字 ...

  4. vue 报错:Cannot read property '__ob__' of undefined

    我的原因:引入组件后未注册 <script> import ComFirst from "../../components/ComFirst.vue" import C ...

  5. redhat7和redhat6混合搭建文档

    1.下载cm对应redhat7的版本.2.修改/opt/cloudera/cm-5.10.0/etc/cloudera-scm-agent/config.ini成为中心机器hostname/ip(ma ...

  6. OC和Cocos-js的互相调用

    OC调用cocos-js #import "ScriptingCore.h" #import "cocos2d.h" #include "script ...

  7. 2019-8-31-C#-如何写出一个不能被其他程序集继承的抽象类

    title author date CreateTime categories C# 如何写出一个不能被其他程序集继承的抽象类 lindexi 2019-08-31 16:55:58 +0800 20 ...

  8. Vagrant安装步骤

    Vagrant安装步骤 下载添加box镜像 vagrant box add base 远端的box地址或者本地的box文件名 建立box镜像关联 vagrant box add centos72 va ...

  9. (转)C++ 11 多线程--线程管理

    说到多线程编程,那么就不得不提并行和并发,多线程是实现并发(并行)的一种手段.并行是指两个或多个独立的操作同时进行.注意这里是同时进行,区别于并发,在一个时间段内执行多个操作.在单核时代,多个线程是并 ...

  10. Delphi 第一课

    Delphi 是面向对象的 可视化的集成开发环境 对象包括属性 方法   事件. 用户事件 对象响应事件 不同的对象响应事件不一样