我试图在画布上显示一些线条,这些线条在Y轴位置上有所不同,因此创建了一个itemscontrol并绑定到一个字典,该字典具有Y值和一些要在线显示的文本。
我的问题是,线条会根据单个项目的原点显示到(x1,y1)(x2,y2)点,但我希望每条线从画布原点获取Y轴距离。
<Canvas Margin="0,8,0,8" Height="374" Width="150" >
<ItemsControl ItemsSource="{Binding Path=YPointsDictionary Margin="0">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Line X1="0" Y1="{Binding Value}" X2="150" Y2="{Binding Value}"
StrokeThickness="2" Stroke="Yellow" StrokeDashArray="2,2" />
<Label Content="{Binding Key}" Foreground="Yellow" />
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Canvas>
答案 0 :(得分:0)
使stackPanel Orientation垂直给出结果。这是你想要的吗?
例如:
<StackPanel Orientation="Vertical" >
<Line X1="0" Y1="50" X2="150" Y2="50" Stroke="red" StrokeThickness="5"></Line>
<Line X1="0" Y1="100" X2="150" Y2="100" Stroke="Blue" StrokeThickness="5"></Line>
<Line X1="0" Y1="150" X2="150" Y2="150" Stroke="green" StrokeThickness="5"></Line>
</StackPanel>
答案 1 :(得分:0)
我在这里找到了答案。我需要将画布左侧和顶部绑定为每个项目的X和Y原点。 How to bind a canvas to a list of rectangles