タブアイテムを含むタブコントロールがあります。ユーザーがタブコントロールから特定のタブを「引き裂く」ときに、特定のタブを独自のウィンドウで開きたいと思います。ウィンドウを作成し、タブアイテムをそのウィンドウに移動するという点で何をすべきかを知っています。
しかし、作成した後、ウィンドウが引き裂かれたときに、ウィンドウをマウスの下に保持する方法がわからないようです。したがって、ユーザーの操作はシームレスです。
私はこれをtabitemのコードに持っています:
protected override void OnPreviewMouseMove(MouseEventArgs e)
{
base.OnPreviewMouseMove(e);
if(e.LeftButton == MouseButtonState.Pressed && _startPoint != null)
{
Point position = e.GetPosition(null);
if (Math.Abs(position.Y - _startPoint.Value.Y) > SystemParameters.MinimumVerticalDragDistance)
{
Point cursor = Utils.GetCursorPosition();
var w = new AttachableWindow(){WindowStartupLocation = WindowStartupLocation.Manual, Left = cursor.X, Top=cursor.Y};
w.Show();
_startPoint = null;
e.Handled = true;
}
}
}