防止边框中的WPF图像平移过远
我有一个WPF防止边框中的WPF图像平移过远,wpf,image,Wpf,Image,我有一个WPF图像在边框内我现在可以点击并拖动来平移图像。我想防止用户将图像拖离屏幕。也许在任何边界上至少应该显示100个像素。也就是说,如果用户一直向左拖动图像,大部分图像将消失,但100个像素仍将向边界的左边界伸出 以下是MouseMove和LeftClick事件的当前代码: private void img_Box_MouseMove(object sender, MouseEventArgs e) { if (!img_Box.IsMouseCap
图像
在边框内
我现在可以点击并拖动来平移图像。我想防止用户将图像拖离屏幕。也许在任何边界上至少应该显示100个像素。也就是说,如果用户一直向左拖动图像,大部分图像将消失,但100个像素仍将向边界的左边界伸出
以下是MouseMove和LeftClick事件的当前代码:
private void img_Box_MouseMove(object sender, MouseEventArgs e)
{
if (!img_Box.IsMouseCaptured) return;
var tt = (TranslateTransform)((TransformGroup)img_Box.RenderTransform).Children.First(tr => tr is TranslateTransform);
Vector v = start - e.GetPosition(img_Border);
tt.X = origin.X - v.X;
tt.Y = origin.Y - v.Y;
}
private void img_Box_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
img_Box.CaptureMouse();
var tt = (TranslateTransform)((TransformGroup)img_Box.RenderTransform).Children.First(tr => tr is TranslateTransform);
start = e.GetPosition(img_Border);
origin = new System.Windows.Point(tt.X, tt.Y);
}
我想我应该能够在上面设置一个非常简单的条件来实现我想要的结果,但是我不知道应该设置什么条件。我猜
原点
是图像控件相对于边框的左上角吗?并且它的X
和Y
值不等于零,因为图像被拉伸(例如,hasStretch=Uniform
)已更新以显示原点的初始化。