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

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

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

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

 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    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. Photon Server的服务器端配置

    Photon Server与Unity3D的交互分为3篇博文实现 (1)Photon Server的服务器端配置 (2)Photon Server的Unity3D客户端配置 (3)Photon Ser ...

  2. 『BASH』——Learn BashScript from Daniel Robbins——[001-002]

    ABSTRACT: Daniel Robbins is best known as the creator of Gentoo Linux and author of many IBM develop ...

  3. 20140408 父类指针指向子类对象 ;delete ;static作用

    1.父类指针可以指向子类对象 静态联翩:如果以父类指针指向派生类对象,那么经由该指针只能访问父类定义的函数 动态联编:根据指针实际指向的对象类型确定 2.面试宝典 P110 面试题5  #includ ...

  4. 天道神诀---防火墙以及selinux(上篇)

    Linux防火墙 linux6.x 防火墙会影响通信,默认是拒绝所有. [root@redhat6 sysconfig]# chkconfig iptables --listiptables      ...

  5. MYSQL查询查找重复的电子邮箱

    编写一个 SQL 查询,查找 Person 表中所有重复的电子邮箱. 示例: +----+---------+| Id | Email |+----+---------+| 1 | a@b.com | ...

  6. CSS动画库——animate.css的使用

    Animate.css是一款强大的CSS3动画库 官网地址:https://daneden.github.io/animate.css/ 使用方法如下所示: (1)下载animate.css 下载地址 ...

  7. Qt Creator编译时提示找不到“ui_xxx.h”文件

    解决方案: 在对应工程的*.pro文件里加上: QT+= widgets 则在编译过程中对应的“xxx.ui”文件会自动生成“ui_xxx.h”文件.

  8. iptables 命令大全

    1.连续端口配置 iptables可以方便的配置多个端口.其中根据端口的连续性,又可分为连续端口配置和不连续端口配置. 如: -A INPUT -p tcp –dport 21:25 -j DROP/ ...

  9. 【JZOJ6367】工厂(factory)

    description 大神 wyp 开了家工厂,工厂有 n 个工人和 p 条流水线. 工厂的工人都是睡神,因此第 i 个工人只会在 si 至 ti 时刻才会工作. 每个工人都会被分派到一条流水线上, ...

  10. equal 与 hashCode

    equal Object: public static boolean equals(Object a, Object b) { return (a == b) || (a != null & ...