【C#/WPF】用Thumb做可拖拽的UI控件
来源:互联网 发布:淘宝发布宝贝照片尺寸 编辑:程序博客网 时间:2024/05/18 10:11
需求:简单的可拖拽的图片
使用System.Windows.Controls.Primitives.Thumb类
前台:
<Canvas x:Name="g"> <Thumb Canvas.Left="10" Canvas.Top="20" Canvas.ZIndex="99" DragDelta="Thumb_DragDelta"> <Thumb.Template> <ControlTemplate> <Image Width="60" Height="60" Source="你的图片路径"/> </ControlTemplate> </Thumb.Template> </Thumb></Canvas>
后台:
private void Thumb_DragDelta(object sender, System.Windows.Controls.Primitives.DragDeltaEventArgs e){ UIElement thumb = e.Source as UIElement; // 防止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(); Canvas.SetLeft(thumb, Canvas.GetLeft(thumb) + e.HorizontalChange); Canvas.SetTop(thumb, Canvas.GetTop(thumb) + e.VerticalChange);}
坑点:
- Thumb必须是一个Canvas的子类,因为它依赖该Canvas来定位。
- Thumb必须协商Canvas.Left和Canvas.Top,因为它依赖该Vanvas来定位,否则无法拖动!
重要的参考:
- https://wpf.2000things.com/2012/12/19/715-using-the-thumb-control-to-drag-objects-on-a-canvas/
- https://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.thumb(v=vs.110).aspx
0 0
- 【C#/WPF】用Thumb做可拖拽的UI控件
- 【C#/WPF】UI控件的拖拽/拉伸
- 继续聊WPF——Thumb控件
- 继续聊WPF——Thumb控件
- WPF Thumb
- WPF里面多线程访问UI线程、主线程的控件
- WPF 实现数据结构对象与UI控件的绑定
- 张高兴的 UWP 开发笔记:用 Thumb 控件仿制一个可拖动 Button
- 张高兴的 UWP 开发笔记:用 Thumb 控件仿制一个可拖动 Button
- 张高兴的 UWP 开发笔记:用 Thumb 控件仿制一个可拖动 Button
- 张高兴的 UWP 开发笔记:用 Thumb 控件仿制一个可拖动 Button
- 张高兴的 UWP 开发笔记:用 Thumb 控件仿制一个可拖动 Button
- 张高兴的 UWP 开发笔记:用 Thumb 控件仿制一个可拖动 Button
- C#用副线程改主线程(UI线程)的控件属性的方法(包括Winform和WPF)
- 采用C#WPF实现自己的网页浏览器(自定义Tab控件)
- 【C#】wpf自定义calendar日期选择控件的样式
- WPF 控件的位置
- c# wpf下的多线程操作窗口UI控件的过程
- 已签名apk文件获取签名文件的MD5,签名信息
- 多线程学习(五)之Callable&Future
- opencv 简单的makefile
- Libevent源码分析-----配置event_base
- fstream 一点总结
- 【C#/WPF】用Thumb做可拖拽的UI控件
- 【项目】LCD屏幕驱动代码显示的设计思路
- hadoop2.6.0删除集群节点(三)
- Gym
- 安卓基础 Android基本组件
- 待机异常篇
- android自定义控件:根据声音波动的声波控件模仿Siri
- 积累知识,感谢平台
- Gephi学习笔记-画出图形基本流程