我創建了一個可拖動的控件,想要限制它的包含網格的邊界(即不讓用戶將它拖到網格外)。Silverlight命中一個對象在一個Grid邊界內
我需要一個測試,返回true或false,以便我可以在必要時取消拖動。
我已經看過VisualTreeHelper.FindElementsInHostCoordinates和TransformToVisual等,但我找不到對控件的每個角落進行大量檢查的簡單方法。
例如一些代碼(Dialog是正在拖動控件的名稱):
MouseEventHandler mouseMove = (s, args) =>
{
var transform = new TranslateTransform();
transform.X = args.GetPosition(Dialog).X - _mouseDownPosition.X;
transform.Y = args.GetPosition(Dialog).Y - _mouseDownPosition.Y;
if (transformGroup != null)
{
transformGroup.Children.Add(transform);
Dialog.RenderTransform = transformGroup;
}
};