我的项目是电路 . 我创造了元素 . 元素是用于连接的图像和节点 . 我有一个quastion,如何使点后跟一个元素(图像) . enter image description here

代码

private void Image_MouseMove(object sender,MouseEventArgs e){if(e.LeftButton == MouseButtonState.Pressed && Keyboard.Modifiers!= ModifierKeys.Shift){var p = e.GetPosition(this); obj.MoveRef(p - mousePress); mousePress = p; }

private void Image_MouseUp(object sender, MouseButtonEventArgs e)
  {
     if (e.LeftButton == MouseButtonState.Released)
     {
        var img = sender as Image;
        img.ReleaseMouseCapture();
     }
  }

捕获元素

private void Image_MouseDown_1(object sender, MouseButtonEventArgs e)
  {
     if (e.LeftButton == MouseButtonState.Pressed)
     {
        mousePress = e.GetPosition(this);
        var img = sender as Image;
        obj = img.DataContext as Element;
        img.CaptureMouse();
        e.Handled = true;



     }
  }

在画布上创建元素

private void Image_MouseDown(object sender, MouseButtonEventArgs e)
  {
     if (e.LeftButton == MouseButtonState.Pressed)
     {
        var url = ((sender as Image).DataContext as Element).DisplayedImageShortUrl;
        var elm = new Element { DisplayedImage = url, Pos = new Point(100, 100) };
        elements.Add(elm);
        double X = elm.Pos.X;
        double Y = elm.Pos.Y;



        tochk = new Node { A = elm, X = X + 7, Y = Y + 32 };
        tochk1 = new Node { A = elm, X = X + 105, Y = Y + 32 };

        nodes.Add(tochk);
        nodes.Add(tochk1);



     }

wpf

<ItemsControl x:Name="ic_nodes" Grid.Column="1">
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <Canvas/>
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Ellipse Width="5" Height="5" Fill="Black" MouseEnter="Ellipse_MouseEnter" MouseLeave="Ellipse_MouseLeave">
                    <Ellipse.RenderTransform>
                        <TranslateTransform X="{Binding X}" Y="{Binding Y}"/>
                    </Ellipse.RenderTransform>
                </Ellipse>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>