社区
WPF/Silverlight
帖子详情
WPF 大图片平移拖动边界定义问题
E次奥
2017-12-26 10:28:01
最近在实现一个类似QQ图片查看器的东西,遇到一些问题,求各位帮忙;
图片用的变换缩放改变显示大小, 放大后,如何拖动才能让图片的边界不能进入窗体内部?
...全文
943
2
打赏
收藏
WPF 大图片平移拖动边界定义问题
最近在实现一个类似QQ图片查看器的东西,遇到一些问题,求各位帮忙; 图片用的变换缩放改变显示大小, 放大后,如何拖动才能让图片的边界不能进入窗体内部?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
实现
图片
随意
拖动
在本文中,我们将深入探讨如何使用Windows Presentation Foundation (
WPF
) 实现
图片
的随意
拖动
功能。
WPF
是微软提供的一种强大的用户界面框架,用于构建桌面应用程序,它提供了丰富的图形和交互性特性。 首先,我们...
wpf
:滑块控制控件大小并且移动
在Windows Presentation ...同时,
WPF
的变换机制提供了方便的方式来实现对象的缩放和
平移
,使得这种交互式设计变得更加容易和灵活。理解并熟练运用这些技术,可以帮助开发者创建出更加用户友好且富有互动性的应用程序。
WPF
拖拽控件(可点击)
`_startPoint`用于存储鼠标按下时的位置,`_translateTransform`是用于
平移
的转换对象,我们将在拖拽过程中使用它。 接着,我们需要处理`MouseMove`事件,实现在指定范围内的
拖动
: ```csharp private void ...
WPF
实现缩放移动
这个主题主要围绕如何创建并实现一个可缩放、可
平移
的画布来展开。 首先,我们要理解 `Canvas` 控件的基本特性。`Canvas` 是
WPF
中的布局容器之一,它允许通过绝对坐标定位子元素,提供了高度的自由度来排列和设计UI...
Wpf
多点 触控应用程序
- `ManipulationStarted`、`ManipulationDelta` 和 `ManipulationCompleted`:用于处理更复杂的手势,如旋转、缩放和
平移
。 3. **手势识别** -
拖动
(Drag):通过监听 `TouchMove` 事件和比较 `TouchPoint` 的前...
WPF/Silverlight
8,756
社区成员
12,030
社区内容
发帖
与我相关
我的任务
WPF/Silverlight
WPF/Silverlight相关讨论
复制链接
扫一扫
分享
社区描述
WPF/Silverlight相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章