需要在路径的每一端添加文本

时间:2016-12-01 02:24:55

标签: wpf xaml

我正在绘制WPF中的交换机网络图。我可以将交换机和它们之间的连接添加到图表中。连接被绘制为Path with LineGeometry作为数据:

Shapes.Path path1;
path1 = new Shapes.Path();
path1.Stroke = Brushes.Black;
path1.StrokeThickness = 1;

LineGeometry line1 = new LineGeometry();
path1.Data = line1;

我将这条线添加到我用来表示开关的拇指上:

SwitchAsThumb thumb1 = new SwitchAsThumb;
thumb1.StartLines.Add(line1);

SwitchAsThumb定义为:

public class SwitchAsThumb : Thumb
{
    public List<LineGeometry> EndLines { get; private set; }
    public List<LineGeometry> StartLines { get; private set; }

}

这个方法在我的窗口xaml.cs文件中更新路径的终点位置:

public void UpdateSwitchConnections(SwitchAsThumb thumb)
{
    double left = Canvas.GetLeft(thumb);
    double top = Canvas.GetTop(thumb);

    for (int i = 0; i < thumb.StartLines.Count; i++)
        thumb.StartLines[i].StartPoint = new Point(left + thumb.ActualWidth / 2, top + thumb.ActualHeight / 2);

    for (int i = 0; i < thumb.EndLines.Count; i++)
        thumb.EndLines[i].EndPoint = new Point(left + thumb.ActualWidth / 2, top + thumb.ActualHeight / 2);
}

我想我可以在更新线条时在画布上的相同位置放置标签或类似物,但是我不确定当用户拖动开关以重新排列图表时标签会移动。当用户拖动拇指时,我实施的重新绘制拇指的方法可能会更新以移动标签,但我希望有一个更清洁的解决方案。

0 个答案:

没有答案