首页 > 解决方案 > 定位项目控制项目在画布上

问题描述

我正在使用 wpf 制作 Ford-Fulkerson 可视化器。为了显示我正在使用ItemsControl的图表,DataTemplate如下所示:

<ItemsControl ItemsSource="{Binding Edges}" Panel.ZIndex="1">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <Canvas />
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.Resources>
        <DataTemplate DataType="{x:Type local:Edge}">
            <Grid>
                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="{Binding Flow}"></TextBlock>
                    <TextBlock Text="/"></TextBlock>
                    <TextBlock Text="{Binding Capacity}"></TextBlock>
                </StackPanel>
                <arrows:ArrowLine StrokeThickness="1" Stroke="Black"
                                  X1="{Binding StartPoint.X}" Y1="{Binding StartPoint.Y}"
                                  X2="{Binding EndPoint.X}" Y2="{Binding EndPoint.Y}"
                                  ArrowEnds="End" ArrowLength="10"></arrows:ArrowLine>
            </Grid>
        </DataTemplate>
        <DataTemplate DataType="{x:Type local:PrimaryEdge}">
            <Grid>
                <arrows:ArrowLine StrokeThickness="1" Stroke="Black"
                                  X1="{Binding StartPoint.X}" Y1="{Binding StartPoint.Y}"
                                  X2="{Binding EndPoint.X}" Y2="{Binding EndPoint.Y}"
                                  ArrowEnds="End" ArrowLength="10"></arrows:ArrowLine>
            </Grid>
        </DataTemplate>
    </ItemsControl.Resources>
</ItemsControl>

此代码正确显示我的边缘,但我还需要显示每个边缘的流量和容量。是我的图表现在的显示方式,左上角的 7/13 是我想要定位在边缘附近的流量和容量。我怎样才能做到这一点?

标签: c#wpf

解决方案


推荐阅读