.net 如何创建将每个“项”渲染为多段线上的点的ItemsControl?

.net 如何创建将每个“项”渲染为多段线上的点的ItemsControl?,.net,wpf,.net-3.5,itemscontrol,itemtemplate,.net,Wpf,.net 3.5,Itemscontrol,Itemtemplate,我对MSDN样本感到非常困惑。我发现的所有示例通常都围绕StackPanel中的文本项或类似的简单内容 给定一个数字数组作为ItemsSource- ItemsSource = { 25 , 50 , 75 } ItemsControl应仅产生以下内容: <PolyLine Points="0,25 1,50 2,75" /> 如图所示,每个项目都需要转换为一个点,其中x值是项目在项目列表中的位置,“y”值是项目本身的解释数值 如果绝对需要ItemsPanelTemplate,我

我对MSDN样本感到非常困惑。我发现的所有示例通常都围绕StackPanel中的文本项或类似的简单内容

给定一个数字数组作为ItemsSource-

ItemsSource = { 25 , 50 , 75 }
ItemsControl应仅产生以下内容:

<PolyLine Points="0,25 1,50 2,75" />
如图所示,每个项目都需要转换为一个点,其中x值是项目在项目列表中的位置,“y”值是项目本身的解释数值

如果绝对需要ItemsPanelTemplate,我想它对单个多段线的布局影响最小——可能是一个简单的网格,没有任何明确的列或行定义

但我不知道如何在这个场景中实现ItemsPanelTemplate、ItemsPresenter或ItemTemplate


有人能给我指出正确的方向吗?

你所问的是可能的,但不是很直接。。。Bea Stollnitz写了一篇关于将多边形的点集合绑定到数据源的文章,你可能会从中得到一些想法。

你所要求的是可能的,但不是很简单。。。Bea Stollnitz写了一篇关于将多边形的点集合绑定到数据源的文章,您可能会从中获得一些想法。

我猜您正在尝试创建显示线图的控件。您可以查看,尤其是LineSeries类。源代码可供下载,您可以通过查看它来了解如何创建WPF控件。然而,这种方法并不像简单地将一组数字绑定到一条多段线那么简单。

我的猜测是,您正在尝试创建显示折线图的控件。您可以查看,尤其是LineSeries类。源代码可供下载,您可以通过查看它来了解如何创建WPF控件。然而,这种方法并不像简单地将一组数字绑定到一条多段线那样简单

<ItemsControl
    x:Name="ic">
    <ItemsControl.Resources>
        <local:DatumToPositionConverter x:Key="datumToPositionConverter" />
    </ItemsControl.Resources>
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <VirtualizingStackPanel Orientation="Horizontal" />
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Grid>
                <Ellipse
                    Width="2"
                    Height="2"
                    Fill="Red"
                    Margin="{Binding Converter={StaticResource datumToPositionConverter}}"
                    />
            </Grid>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>
这是一个样本

<ItemsControl
    x:Name="ic">
    <ItemsControl.Resources>
        <local:DatumToPositionConverter x:Key="datumToPositionConverter" />
    </ItemsControl.Resources>
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <VirtualizingStackPanel Orientation="Horizontal" />
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Grid>
                <Ellipse
                    Width="2"
                    Height="2"
                    Fill="Red"
                    Margin="{Binding Converter={StaticResource datumToPositionConverter}}"
                    />
            </Grid>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

猜对了,哈哈。实际上,我更感兴趣的是学习如何让WPF模板为我工作。但我确实在做一个简单的折线图作为学习过程的一部分。猜对了,哈哈。实际上,我更感兴趣的是学习如何让WPF模板为我工作。但作为学习过程的一部分,我确实在做一个简单的折线图。这并不能回答我的问题。我试图将项目值绑定到多段线上其各自点的Y值。我不仅仅是想操纵屏幕上控件的位置,这并不能回答我的问题。我试图将项目值绑定到多段线上其各自点的Y值。我不仅仅是想操纵屏幕上控件的位置。