1

ビデオプレーヤーにタイムラインを表示するためにwpfスライダーを使用しています。この上にある種の ItemControl を追加して、タイム ラインの特定の位置にボタンを追加できるようにする必要があります (ボタンは、親の ItemsControl に対する独自の位置を保持します)。

(タイムコードに基づいて) 独自の位置を認識している子要素を追加するには、どの ItemsControl コンテナーを使用すればよいですか? 私は Wpf でさまざまな ItemsControls を見てきましたが、それらのすべてが子を積み重ねる特定の方法を持っているようです (水平または垂直に次々と)!

さらに複雑にするために、子の位置を親の ItemsControl の幅に対して相対的にするにはどうすればよいでしょうか? このように、ItemsContol を拡大または縮小すると、子が再配置されます。

4

1 に答える 1

2

明示的な配置を可能にする WPF コントロールは、Canvas. Canvas.Leftその後、必要に応じてCanvas.Top子コントロールを設定できます。

次のようなレイアウトをItemControl使用できます。Canvas

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

編集:サイズ変更を逃した...

を使用するViewBoxItemsControl、コンテンツのサイズが自動的に変更されますが、アイテム自体も大きくなります。それが適切でない場合は、コントロールを手動で再配置する必要があると思いますCanvas。そのような配置は許可されていないためです。

于 2010-03-09T10:01:03.693 に答える