社区
WPF/Silverlight
帖子详情
WPF 大图片平移拖动边界定义问题
E次奥
2017-12-26 10:28:01
最近在实现一个类似QQ图片查看器的东西,遇到一些问题,求各位帮忙;
图片用的变换缩放改变显示大小, 放大后,如何拖动才能让图片的边界不能进入窗体内部?
...全文
980
2
打赏
收藏
WPF 大图片平移拖动边界定义问题
最近在实现一个类似QQ图片查看器的东西,遇到一些问题,求各位帮忙; 图片用的变换缩放改变显示大小, 放大后,如何拖动才能让图片的边界不能进入窗体内部?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jack_z63
2018-07-16
打赏
举报
回复
废话不说,直接看下面代码:
private void Domousemove(Rectangle img, MouseEventArgs e)
{
if (e.LeftButton != MouseButtonState.Pressed)
{
return;
}
TransformGroup group = grid1.FindResource("Imageview") as TransformGroup;
TranslateTransform transform = group.Children[1] as TranslateTransform;
Point position = e.GetPosition(img);
var transform0 = group.Children[0] as ScaleTransform;
double xScale = transform0.ScaleX; //取出放大系数
double parentH = img.ActualHeight; //容器控件高
double parentW = img.ActualWidth; //容器控件宽
double yCount = parentH * yScale; //当前图像高
double xCount = parentW * xScale; //当前图像宽
double xRight = parentW - xCount; //容器与图像宽的差
double yBottom = parentH - yCount; //容器与图像高的差
double diffX = position.X - mouseXY.X; //当前申请的平移X分量
double diffY = position.Y - mouseXY.Y; //当前申请的平移Y分量
if (((transform.X + diffX) < xRight) || ((transform.Y + diffY) < yBottom) || ((transform.X + diffX) > 0) ||
((transform.Y + diffY) > 0))
{ //如果申请平移量使图像边界进入容器内则不执行平移
transform.X += 0;
transform.Y += 0;
}
else
{
transform.X += diffX; // m_PreviousMousePoint.X;
transform.Y += diffY; // m_PreviousMousePoint.Y;
}
mouseXY = position;
}
郑州高新区WPF小王子
2017-12-29
打赏
举报
回复
描述过于简单,代码+贴图。
WPF
中实现
图片
缩放和
平移
的实战技巧
本文介绍了
WPF
中实现
图片
缩放和
平移
的方法。利用ScaleTransform和TranslateTransform类,结合鼠标事件控制缩放和
平移
。还阐述了交互设计原则,通过代码实现交互效果,并进行优化调试。此外,从多维度分析用户反馈,提出响应式设计等优化策略提升用户体验。
【
WPF
】 自
定义
Image 控件实现图像缩放与
平移
本文系统阐述在
WPF
中构建专业级图像浏览控件的技术方案,聚焦于以鼠标位置为中心的锚点缩放、矩阵驱动的统一变换管理、拖拽
平移
的坐标映射与
边界
约束、惯性滚动实现,以及大图像分级加载和渲染优化等关键技术。强调通过MatrixTransform封装交互逻辑,提升性能与体验,并支持工业、医疗等高要求场景。
WPF
实战:Live Charts交互式图表缩放与
平移
功能详解
本文详解
WPF
中Live Charts库实现交互式图表缩放与
平移
的核心技术,涵盖Zoom/Pan属性配置、MVVM模式下的动态绑定、坐标轴范围控制(MinValue/MaxValue)、大数据量性能优化策略、自
定义
视觉反馈及
边界
异常处理,并通过股票数据查看器案例整合应用。重点聚焦于提升数据可视化交互体验的专业实践。
WPF
缩放
图片
不显示超出控件的部分
本文介绍了两种在
WPF
中实现图像缩放和
平移
的方法。第一种方法涉及使用`Grid`和`TransformGroup`,通过鼠标滚轮和
拖动
实现缩放和
平移
,同时限制了移动
边界
。第二种方法直接在`Image`元素上应用`ScaleTransform`和`TranslateTransform`,通过鼠标滚轮事件调整缩放,保持缩放中心点不变。
wpf
canvas移动
这篇博客介绍了如何在
WPF
应用中实现
边界
框内的图形元素(如线条和矩形)的
拖动
和缩放功能。通过处理PreviewMouseDown、PreviewMouseMove和PreviewMouseUp等事件,实现了元素的
平移
,并使用PreviewMouseWheel事件处理缩放。代码中涉及到Canvas、TransformGroup和TranslateTransform、ScaleTransform等概念,展示了图形用户界面交互的实现细节。
WPF/Silverlight
8,757
社区成员
12,031
社区内容
发帖
与我相关
我的任务
WPF/Silverlight
WPF/Silverlight相关讨论
复制链接
扫一扫
分享
社区描述
WPF/Silverlight相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章