我有一个带有选项卡项的选项卡控件。当用户将其从选项卡控件中“撕下”时,我想在其自己的窗口中打开一个特定的选项卡。我知道在创建窗口和将选项卡项移动到该窗口方面该怎么做。
但是,我似乎无法弄清楚如何在创建后将窗口保留在鼠标下,当它被撕下时;所以用户交互是无缝的。
我在 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;
}
}
}