【发布时间】:2015-07-09 06:47:40
【问题描述】:
我有以下 XAML 代码:
<Grid>
<ItemsControl ItemsSource="{Binding Items}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas></Canvas>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Ellipse Width="{Binding Radius}" Height="{Binding Radius}" Fill="{Binding BackColor}" />
<Line Stroke="Black" StrokeThickness="1" x:Name="_Line"/>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemContainerStyle>
<Style>
<Setter Property="Canvas.Left" Value="{Binding X}"/>
<Setter Property="Canvas.Top" Value="{Binding Y}"/>
<Setter Property="Line.X1" Value="{Binding LineX1}"/>
<Setter Property="Line.X2" Value="{Binding LineX2}"/>
<Setter Property="Line.Y1" Value="{Binding LineY1}"/>
<Setter Property="Line.Y2" Value="{Binding LineY2}"/>
</Style>
</ItemsControl.ItemContainerStyle>
</ItemsControl>
</Grid>
这是一个 ItemsControl,它的 ItemPanel 是一个 Canvas,用于动态放置我绑定到的 Obervable 集合中的椭圆。带有 Canvas.Top 和 Canvas.Left 值的椭圆的位置可以正常工作。但它没有画线来连接椭圆。
行的位置在后面的代码中计算正确,我检查了。
【问题讨论】: