問題:いくつかの項目を持つItemsControlを持つウィンドウ(四角形と言う) ウィンドウにMinWidthとMinHeightが設定されています(例:300) 長方形に2つの列に表示するのに十分なスペースがない場合、ウィンドウのサイズを変更するときに必要です。 そして、2列の中にまだスクロールビューアを表示するのに十分なスペースがない場合。 1.拡張のItemsControlを作成します:WPF - IScrollInfoの実装
パブリッククラスMyGrid:グリッド、IScrollInfo
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<local:MyGrid IsItemsHost="True" x:Name="PART_ItemsPanel" Initialized="OnItemsPanelInitialized" CanVerticallyScroll="True" CanHorizontallyScroll="True">
<local:MyGrid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</local:MyGrid.ColumnDefinitions>
<local:MyGrid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
</local:MyGrid.RowDefinitions>
</local:MyGrid>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
私のItemsControlはItemsPanelTemplate拡張グリッドとして持っている私が試した何
{ .... IScrollInfoの実装 }
ItemsControlがPrepareContainerForItemOverride()を呼び出すときに、これを使用してアイテムを2つの列に分割することができると考えるこのグリッドを使用します。
ideeaは、会議から「取らない」された....しかし、私は私のような質問が...次に何をすべきか を知らない:私は測定をオーバーライドして、データグリッドの手配、私はの位置を設定する際 をDataGridの項目が、それからPrepareContainerForItemOverride()と呼ばれます。私は行数を計算しなければなりません。しかし、私は再びウィンドウのサイズを変更する場合は... PrepareContainerForItemOverride()は呼び出されません...
これは私の上にこの問題は...あなたが誰かがある場合は私に手がかりを与えてください。 ありがとう!
これがあなたのために働く解決策であれば、この質問に対する答えとして答えを受け入れてください。 – Nightfirecat