用标签绑定形状的位置,以便在移动形状时,标签也随之移动

时间:2019-07-11 10:07:52

标签: c# wpf position controls mouseevent

我有一个应用程序,我可以从工具栏中选择形状,并在右键单击上添加标签作为形状的名称,并单击该位置。现在,当形状移动时,我希望标签随它一起移动,但是标签的位置根据我单击形状的位置而改变。它会移位一定距离。我希望标签相对于形状保持在相同的位置,但仍要移动并记住,否则我的标签也可以移动。所以,我不希望有任何阻碍这一点的事情。该如何纠正?

  void UpdateUILabelPosistion(Control element)
    {
        var label = element as Label;
        foreach (var shape in m_Shapes)
        {
            if (label.Content.ToString() == shape.Name)
            {
                SelectedShape = shape;
            }
        }
        Task t1 = new Task(() =>
        {
            while (isSelected)
            {
                element.Dispatcher.Invoke(new Action(delegate ()
                {
                    //    var pt = SelectedShape.LabelPosition - Mouse.GetPosition(Canvas);
                    //   DragDrop.DoDragDrop(label, label.Content, DragDropEffects.Move);
                    label.Margin = new Thickness(Mouse.GetPosition(null).X, Mouse.GetPosition(null).Y, 0, 0);
                }));
            }
        });
        t1.Start();
    }

0 个答案:

没有答案