Thumb

把Thumb放到一个Canvas中,因为它是唯一一个是绝对定位的控件,接着我们为Thumb定义模板,弄漂亮一点。
- <Window.Resources>
- <ControlTemplate x:Key="ct" TargetType="{x:Type Thumb}">
- <Grid x:Name="bg">
- <Grid.Background>
- <LinearGradientBrush StartPoint="0.2,0" EndPoint="0.77,0.9">
- <GradientStop Color="#aa0311" Offset="0.1"/>
- <GradientStop Color="#cccccc" Offset="0.62"/>
- <GradientStop Color="#82C3FF" Offset="0.89"/>
- </LinearGradientBrush>
- </Grid.Background>
- </Grid>
- <ControlTemplate.Triggers>
- <Trigger Property="IsDragging" Value="True">
- <Setter TargetName="bg" Property="Background" Value="Gray"/>
- </Trigger>
- </ControlTemplate.Triggers>
- </ControlTemplate>
- </Window.Resources>
- <Canvas x:Name="g" Width="300" Height="300" Margin="0,0">
- <Thumb Canvas.Top="0" Canvas.Left="0" Width="35" Height="35" Template="{StaticResource ct}"
- DragDelta="Thumb_DragDelta"/>
- <TextBlock Canvas.Top="2" Canvas.Left="2" x:Name="tt" FontSize="24" ></TextBlock>
- </Canvas>
然后,在后台处理事件
- private void Thumb_DragDelta(object sender, System.Windows.Controls.Primitives.DragDeltaEventArgs e)
- {
- Thumb myThumb = (Thumb)sender;
- double nTop = Canvas.GetTop(myThumb) + e.VerticalChange;
- double nLeft = Canvas.GetLeft(myThumb) + e.HorizontalChange;
- //防止Thumb控件被拖出容器。
- if (nTop <= 0)
- nTop = 0;
- if (nTop >= (g.Height - myThumb.Height))
- nTop = g.Height - myThumb.Height;
- if (nLeft <= 0)
- nLeft = 0;
- if (nLeft >= (g.Width - myThumb.Width))
- nLeft = g.Width - myThumb.Width;
- Canvas.SetTop(myThumb, nTop);
- Canvas.SetLeft(myThumb, nLeft);
- tt.Text = "Top:" + nTop.ToString() + "\nLeft:" + nLeft.ToString();
- }
代码不是很复杂,我就不多解释了,主要是处理防止把Thumb拖出我们可见边沿,不然的话,就拖不回来了。
Thumb的更多相关文章
- WPF: 旋转Thumb后,DragDelta移动距离出错的解决
当Thumb跟随Grid旋转90度后,拖拽控件时会飞掉. <Grid x:Name="gridMain" Width="100" Height=" ...
- ARM状态和THUMB状态
ARM处理器的工作状态 在ARM的体系结构中,可以工作在三种不同的状态,一是ARM状态,二是Thumb状态及Thumb-2状态,三是调试状态. <嵌入式系统开发与应用教程(第2版)>上介绍 ...
- ARM处理器的寄存器,ARM与Thumb状态,7中运行模式 【转】
转自:http://blog.chinaunix.net/uid-28458801-id-3494646.html ARM处理器工作模式一共有 7 种 : USR 模式 正常用户模式,程序正常 ...
- Android 自定义seekbar中,thumb被覆盖掉一部分问题
(图一) (图二) (图三) 做一个自定义的seekbar,更改其背景图片: <com.android.Progress android:id="@+id/focus_seek ...
- Android 设置thumb图片大小
xml: android:thumb="@drawable/seekbar_thumb" seekbar_thumb.xml: <?xml version="1.0 ...
- ARM 的Thumb状态测试
作为一个使用ARM的学习者,有必要全面了解你的处理器内核.尽管有些内容可能在实际应用中用不到,但是“了解”还是很必要的.Thumb状态,是ARM的一个特色,但是你知道Thumb状态与ARM状态最大的区 ...
- WordPress RokStories插件‘thumb.php’多个安全漏洞
漏洞名称: WordPress RokStories插件‘thumb.php’多个安全漏洞 CNNVD编号: CNNVD-201309-438 发布时间: 2013-09-26 更新时间: 2013- ...
- WordPress RokMicroNews插件‘thumb.php’ 多个安全漏洞
漏洞名称: WordPress RokMicroNews插件‘thumb.php’ 多个安全漏洞 CNNVD编号: CNNVD-201309-384 发布时间: 2013-09-24 更新时间: 20 ...
- WordPress RokIntroScroller插件‘thumb.php’多个安全漏洞
漏洞名称: WordPress RokIntroScroller插件‘thumb.php’多个安全漏洞 CNNVD编号: CNNVD-201309-383 发布时间: 2013-09-24 更新时间: ...
随机推荐
- 百万程序员的苦恼-选择VB.NET还是C#
在过去的一年中,互联网上的各大讨论区或者电子邮件的讨论列表都对微软的VB.NET以及C#的各种优越性做了探讨.这些讨论围绕的主要问题就是,我应该先学哪一个,VB.NET还是C#?? 我写这篇文章的目的 ...
- Aspose.Words组件介绍及使用—基本介绍与DOM概述
1.基本介绍 Aspose.Words是一个商业.NET类库,可以使得应用程序处理大量的文件任务.Aspose.Words支持Doc,Docx,RTF,HTML,OpenDocument,PDF,XP ...
- MailSystem.NET Gmail IMAP讀取信件
程式的主流程為: 開啟SSL連線,逐一讀取收信匣中的信件,將信件內文HTML及附檔逐一存檔後,再將信件移至垃圾桶. 程式碼如下,補充說明我寫在註解裡,請參考: static void Main(str ...
- HDU4027 Can you answer these queries? 线段树
思路:http://www.cnblogs.com/gufeiyang/p/4182565.html 写写线段树 #include <stdio.h> #include <strin ...
- Python能做什么
There should be one--and preferably only one --obvious way to do it. 首先,对于小白来说,Python比较容易上手.额就是个活 ...
- EMC
1.EMC的概念 EMC(Electro Magnetic Compatibility)即电磁兼容,是指设备或系统在其电磁环境中符合要求运行并不对其环境中的任何设备产生无法忍受的电磁干扰的能力.就是它 ...
- 冒泡算法(C++模板实现)
冒泡排序 从整体上看,冒泡排序是一种稳定排序,即排序完成后,原本序列中的键值相等的元素相对位置不会发生改变.算法的时间复杂度是O(n2),空间复杂度为O(1),即这是一个"就地算法" ...
- CF_402C Searching for Graph 乱搞题
题目链接:http://codeforces.com/problemset/problem/402/C /**算法分析: 乱搞题,不明白题目想考什么 */ #include<bits/stdc+ ...
- 解决android锁屏或解锁后activity重启的问题
If your target build version is Honeycomb 3.2 (API Level 13) or higher you must put the screenSize f ...
- puppet运维配置实列
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABQkAAAGBCAIAAABKMKAEAAAgAElEQVR4nOydeXwU9cH/t2o9WutR+7