C# 如何使用整数填充ItemsControl

C# 如何使用整数填充ItemsControl,c#,wpf,xaml,.net-4.0,C#,Wpf,Xaml,.net 4.0,我试图在WPF中创建一种进度条控件。在每一步完成时,都会用省略号填充。然而,我失败了,我将考虑一个干净的例子(最小的代码落后和浪费)。以下是我所拥有的: <ItemsControl> <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <StackPanel Orientation="Horizontal"/> </ItemsPanelTemplate> <

我试图在WPF中创建一种进度条控件。在每一步完成时,都会用省略号填充。然而,我失败了,我将考虑一个干净的例子(最小的代码落后和浪费)。以下是我所拥有的:

<ItemsControl>
<ItemsControl.ItemsPanel>
    <ItemsPanelTemplate>
        <StackPanel Orientation="Horizontal"/>
    </ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
    <DataTemplate>
        <Ellipse Fill="Blue" Stretch="UniformToFill"/>
    </DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>

然后,我想有两个依赖属性:

  • 总步数
  • 步骤完成
我想要的是,当
TotalSteps=14
时,将有14个椭圆,填充将通过使用
StepsCompleted
的触发器、数学转换器和椭圆的索引来完成。但是,除非我创建一个虚拟列表,该列表是用空白对象创建的,它将充当我的
DataContext
…但是,这似乎是一种浪费。是否有一种方法可以根据数字填写模板,而不需要支持列表


或者,我会接受一个覆盖进度条模板的解决方案。但是,我什么也没找到,所以用户控件似乎是最简单的

我认为progressbar已经存在于WPF中了。那么为什么要重新发明轮子呢?我将更新我的问题,但简短的回答是,这在当前的进度中不容易实现。可能是一个网格,您可以将样式设置为每个单元格中都有一个椭圆,然后绑定要进行的列数?或者,只需
container.Children.Add(新椭圆(…)每次调用
步骤完成时检查以下链接。这可能会有帮助。