社区
WPF/Silverlight
帖子详情
WPF 大图片平移拖动边界定义问题
E次奥
2017-12-26 10:28:01
最近在实现一个类似QQ图片查看器的东西,遇到一些问题,求各位帮忙;
图片用的变换缩放改变显示大小, 放大后,如何拖动才能让图片的边界不能进入窗体内部?
...全文
916
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;
}
exception92
2017-12-29
打赏
举报
回复
描述过于简单,代码+贴图。
LightningChart数据可视化工具图形控件教程28-缩放与
平移
缩放与
平移
使用 ZoomPanOptions 来控制缩放与
平移
设置。 图:ZoomPanOptions 属性及子属性 触控屏幕进行缩放 将两根手指放在图表上,并紧手指可缩小,或分离手指可放大。 图表会试着检测是否视图进行水平或垂直缩放,或两者同时进行。这一功能称作 ‘zooming with rails’,可由MultiTouchZoomDirection (Free/XAxis/YAxis/Rails)控制。 通过在X轴或Y轴或其标签上捏并/展开手指,可只对该特定的轴缩放。 设置 MultiTouch
C# Chart折线图使用鼠标滚轮放大、缩小和
平移
曲线
使用鼠标滚轮滚动放大和缩小X轴的宽度,鼠标左键按住
拖动
实现曲线的左右
平移
,不再使用滚动条。 添加鼠标滚轮事件 在chart控件自带的鼠标事件中并没有鼠标的滚轮事件,因此需要手动添加一下,在窗体的Designer.cs文件下的InitializeComponent()函数中添加如下代码 this.chart1.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.chart1_MouseWheel); 实现鼠标滚轮事件 // 使用时先对S
【愚公系列】2023年10月
WPF
+上位机+工业互联 002-
WPF
布局控件
WPF
布局是指在Windows Presentation Foundation(
WPF
)中
定义
和管理用户界面元素的方式。
WPF
提供了不同类型的布局容器,如Grid、StackPanel、WrapPanel和DockPanel等,使得开发人员能够轻松地创建灵活和可扩展的用户界面。
WPF
布局可通过XAML标记语言或代码实现。它提供了一种分离界面和逻辑的方式,使得开发人员能够更容易地管理用户界面的外观和行为。控件功能Canvas。
【朝夕教育】2023年07月
WPF
+上位机+工业互联 002-
WPF
布局控件
WPF
布局是指在Windows Presentation Foundation(
WPF
)中
定义
和管理用户界面元素的方式。
WPF
提供了不同类型的布局容器,如Grid、StackPanel、WrapPanel和DockPanel等,使得开发人员能够轻松地创建灵活和可扩展的用户界面。
WPF
布局可通过XAML标记语言或代码实现。它提供了一种分离界面和逻辑的方式,使得开发人员能够更容易地管理用户界面的外观和行为。以下是
WPF
布局控件的全面列表:这边布局只是讲几个案例,具体布局使用可以看
WPF
控件专题
WPF
无边框设计是
【
WPF
.NET开发】
WPF
中的输入
Windows Presentation Foundation (
WPF
) 子系统提供了一个功能强大的 API,用于从各种设备(包括鼠标、键盘、触摸和触笔)获取输入。本主题介绍了
WPF
提供的服务,并说明了输入系统的体系结构。
WPF/Silverlight
8,735
社区成员
12,029
社区内容
发帖
与我相关
我的任务
WPF/Silverlight
WPF/Silverlight相关讨论
复制链接
扫一扫
分享
社区描述
WPF/Silverlight相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章