1

我正在使用 wpf 滑块在视频播放器中显示时间线。我需要在此之上添加某种 ItemControl,以便我可以在时间线上的某些位置上添加按钮(按钮将相对于父 ItemsControl 保持它们自己的位置)。

我应该使用什么 ItemsControl 容器来添加知道自己位置的子元素(基于它们的时间码)?我查看了 Wpf 中的不同 ItemsControl,看起来他们都有某种方式来堆叠他们的孩子(一个接一个的水平或垂直)!

为了增加一些复杂性,子项的定位如何相对于父项控件的宽度?这种方式放大和缩小 ItemsContol 将重新定位孩子!

4

1 回答 1

2

允许显式定位的 WPF 控件是Canvas. 然后,您可以根据需要设置Canvas.LeftCanvas.Top打开子控件。

您可以像这样ItemControl使用Canvasfor 布局:

<ItemsControl>
  <ItemsControl.ItemsPanel>
    <ItemsPanelTemplate>
      <Canvas IsItemsHost="True" />
    </ItemsPanelTemplate>
  </ItemsControl.ItemsPanel>
</ItemsControl>

编辑:错过了调整大小...

如果你使用 aViewBox周围的ItemsControl内容会自动调整大小,但项目本身也会变大。如果这不合适,那么我认为您必须手动重新定位控件,因为Canvas不允许这种定位。

于 2010-03-09T10:01:03.693 回答