向ItemsControl添加多个形状,而不是在集合中

时间:2015-01-08 11:06:10

标签: wpf itemscontrol

我有以下XAML代码,椭圆移入和移出矩形区域。我想通过绘制一个矩形来标记这个区域,但我找不到在画布中绘制它的方法,因为无法将矩形添加到我的observableCollection“气球”。

<ItemsControl Name="IC" ItemsSource="{Binding balloons}">
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <Canvas Name="canvasWorld" Background="Blue" Width="{Binding canvasWidth}"  Height="{Binding canvasHeight}" IsItemsHost="True"/>
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
            <ItemsControl.ItemContainerStyle>
                <Style TargetType="ContentPresenter">
                    <Setter Property="Canvas.Left" Value="{Binding XPos}"/>
                    <Setter Property="Canvas.Top" Value="{Binding YPos}"/>
                </Style>
            </ItemsControl.ItemContainerStyle>
            <ItemsControl.ItemTemplate>
                <DataTemplate>

                    <Ellipse Width="{Binding Width}" Height="{Binding Height}" Fill="{Binding color}" Stroke="{Binding colorBorder}" StrokeThickness="3">
                        <Ellipse.RenderTransform>
                            <TranslateTransform X="-20" Y="-20"/>
                        </Ellipse.RenderTransform>
                    </Ellipse>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>

我已尝试过hierichial datatemplate,但我无法使其正常工作。理想情况下,我想数据化矩形的大小和位置,但现在用静态值绘制它将是一个很好的开始。

1 个答案:

答案 0 :(得分:0)

我无法找到在itemscontrol中添加它的方法,但是我通过在激活的一个旁边添加一个画布来实现我想要的,并在Canvas.Left设置为a的画布中添加形状负值。