我在Image
内有一个WPF Border
我目前可以点击并拖动来平移图片。我想阻止用户将图像拖离屏幕。也许在任何边界都应该显示至少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);
}
我认为我应该能够在其上设置一个非常简单的条件来实现我想要的结果,但我无法弄清楚条件应该是什么。