WPF 自由拖拽控件
来源:互联网 发布:郑州科技市场数据恢复 编辑:程序博客网 时间:2024/06/03 23:44
为了演示,布局文件很简单,只是放了我一个自己做的自定义虚拟键盘控件,也可以放其他各种控件,例如button….
<Grid > <KeyBoard:Keyboard Name="keyb" HorizontalAlignment="Left" Height="196" Margin="68,75,0,0" VerticalAlignment="Top" Width="588" MouseLeftButtonDown="keyb_MouseLeftButtonDown" MouseLeftButtonUp="keyb_MouseLeftButtonUp" MouseMove="keyb_MouseMove"/> </Grid>
为此控件加上MouseLeftButtonDown、MouseLeftButtonUp、MouseMove事件
后天代码书写:
public MainWindow() { InitializeComponent(); keyb.MouseLeftButtonDown += keyb_MouseLeftButtonDown; keyb.MouseMove += keyb_MouseMove; keyb.MouseLeftButtonUp += keyb_MouseLeftButtonUp; }
Point point = new Point(); private void keyb_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { point = e.GetPosition(null); keyb.CaptureMouse(); keyb.Cursor = Cursors.Hand; } private void keyb_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { keyb.ReleaseMouseCapture(); } private void keyb_MouseMove(object sender, MouseEventArgs e) { if (e.LeftButton == MouseButtonState.Pressed) { double dx = e.GetPosition(null).X - point .X + keyb.Margin.Left; double dy = e.GetPosition(null).Y - point .Y + keyb.Margin.Top; keyb.Margin = new Thickness(dx, dy, 0, 0); point = e.GetPosition(null); } }
一定要注意控件最好大一点 ,鼠标放在其内才能拖动,不然会出现未必想要的结果。
阅读全文
1 0
- WPF 自由拖拽控件
- wpf中移动拖拽控件
- div自由拖拽
- 【C#/WPF】UI控件的拖拽/拉伸
- WPF控件
- wpf控件
- WPF控件
- WPF 控件
- 自由拖动的控件
- 【C#/WPF】GridSplitter 分割布局,拖拽控件分隔栏以改变控件尺寸
- WPF控件-StackPanel控件
- wpf如何实现自定义窗口自由拖动
- 如何制件自由选区(笔记) wpf
- 控件的自由拖动代码
- 自由浮动控件的实现
- android 瀑布流布局 + 自由拖拽
- WPF控件之控件类
- WPF控件之内容控件
- 互联网+
- Oracle数据库知识点总结
- 倒沖法-線邊倉
- requsets的过程
- 搜索商品,实现网格布局
- WPF 自由拖拽控件
- hiveContext读取hive数据
- Android点击WebView中的图片获取指定标签段的所有图片实现缩放及滑动浏览-PhotoView
- opencv 以及opencv_contrib ubuntu14.04 配置的问题汇总
- pytorch学习笔记(十八):C 语言扩展 pytorch
- C#学习笔记(视图)
- 听见丨AirPods圣诞节前无货,全球范围内再次缺货 Uber计划2024年推出“打飞的”服务
- 马云、马化腾各自性格决定投资方式,你更看好谁?
- SIGPIPE信号导致服务器进程退出的原理及解决办法