numaralı telefonun üst sınırının içinde saklayın. Bir kılavuzun içine sürüklediğim bir kullanıcı kontrolüne sahibim. Z-İndeksi oldukça yüksektir, böylece onu diğer çocukların üzerinde tutabilirim. Kontrolün sürüklenmesi mükemmel çalışır, ancak bir kullanıcı kontrolü ızgara dışında taşımak isterse, buna izin verecektir.Kullanıcı Denetimi'ni sürükleyin, ancak WPF
burada ben şimdi ne var, ana kılavuz denetiminde sınırlarını terk onu nasıl duruyorsun:
private System.Windows.Point _anchorPoint;
private System.Windows.Point _currentPoint;
private bool _isInDrag;
private void UserControl_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
var element = sender as FrameworkElement;
_anchorPoint = e.GetPosition(null);
if (element != null) element.CaptureMouse();
_isInDrag = true;
e.Handled = true;
}
private void UserControl_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
if (!_isInDrag) return;
var element = sender as FrameworkElement;
if (element != null) element.ReleaseMouseCapture();
_isInDrag = false;
e.Handled = true;
}
private void UserControl_MouseMove(object sender, MouseEventArgs e)
{
if (!_isInDrag) return;
_currentPoint = e.GetPosition(null);
UIElement container = VisualTreeHelper.GetParent(_parentGrid) as UIElement;
System.Windows.Point relativeLocation = _parentGrid.TranslatePoint(new System.Windows.Point(0, 0), container);
if (_currentPoint.X > relativeLocation.X) return;
if(_currentPoint.Y >= relativeLocation.Y)return;
_transform.X += _currentPoint.X - _anchorPoint.X;
_transform.Y += (_currentPoint.Y - _anchorPoint.Y);
RenderTransform = _transform;
_anchorPoint = _currentPoint;
}
"relativeLocation" çalışmıyor şu yüzden, her zaman 0x0 olduğunu. Herhangi bir fikir büyük ölçüde takdir edilecektir.
* Not: UserControl'ümü bir pencereye değiştirdiğimde, sahip olduğum tüm sorunları azaltacağını biliyorum. Ama dürüst olmak gerekirse, bu şekilde harika görünüyor ve gerçekten pencereyi karıştırmak istemiyorum. Bu sistem, kullanıcının tüm penceresini (ayrı bir pencerede açılır) kullanan bir gösterge panosu olarak açılır. Yani burada bir pencere açtığınızda, doğru akmaz.
"parentGrid" öğesinin göreceli konumunu kapsayıcıya hesaplıyor gibi görünüyor. Sıfır noktasını açıklar. Bunun yerine 'UserControl' seçeneğini deneyin, bunun yerine [bu gönderiyi] seçin (http://stackoverflow.com/a/1923775). – bab7lon