0

ItemsControl 内の項目がコンテナーをオーバーフローしたときに、Trigger を使用してテンプレートをどのように交換しますか?

私の現在の実装では、ItemsControl の現在の状態が、スクロール バーの可視性が Auto に設定されている場合にコンテンツによって ScrollViwer のスクロール バーが表示されるようなものであるかどうかに基づいて、より簡単な形式のテンプレートを表示したいと思います。したがって、ScrollViewerまたはItemsControlのいずれかのプロパティに興味があります。これにより、ScrollViewerがオーバーフローしているかどうかの手がかりが得られます。カスタム ValueConverter を使用して適切なブール値をバインドする必要がある場合は、それも問題ないと思います。

4

1 に答える 1

1

わかりましたので、私はこれを自分で考え出しました。

私の場合、物理スクロールではなく論理スクロールを使用しています。水平レイアウトを使用しているため、ScrollViewer.ScrollableWidth でトリガーするだけで済みました。私の場合にこれを機能させる秘訣は、ScrollViewer.Horizo​​ntalScrollBarVisibility を Disabled ではなく Hidden に設定することでした。これにより、コンテンツをスクロールできるようになり、scrollableWidth プロパティが実際に意味のある値を持つようになります。

注: 不思議なことに、Horizo​​ntalScrollBarVisibility を Hidden に設定すると、スクロール バーが視覚的に折りたたまれているように見えるため、この場合の Collapse と Hidden の違いは完全にはわかりません。

于 2009-10-07T02:24:06.253 に答える