0

私は、ItemsPanel が VirtualizingStackPanel に設定された ListBox を使用しています。

        <ListBox ItemsSource="{Binding Items}"
                 ScrollViewer.VerticalScrollBarVisibility="Visible">
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <VirtualizingStackPanel Orientation="Horizontal"
                                        VirtualizationMode="Recycling"
                                        HorizontalAlignment="Stretch"
                                        VerticalAlignment="Top"
                                        />
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>

            <ItemsControl.ItemTemplate>
                <DataTemplate>

                    <DataGrid 
                          VerticalAlignment="Top"
                          HeadersVisibility="None"
                          ItemsSource="{Binding Distances}">

                        <DataGrid.Columns>
                            <DataGridTemplateColumn IsReadOnly="True" Width="100">
                                <DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <TextBlock Text="{Binding FactDistance}"/>
                                    </DataTemplate>
                                </DataGridTemplateColumn.CellTemplate>
                            </DataGridTemplateColumn>

                            <DataGridTemplateColumn Width="100">
                                <DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <TextBlock Text="{Binding NormDistanceValue}"
                                                   VerticalAlignment="Stretch"
                                                   HorizontalAlignment="Stretch"
                                                   TextAlignment="Center"/>
                                    </DataTemplate>
                                </DataGridTemplateColumn.CellTemplate>
                            </DataGridTemplateColumn>

                              <DataGridTemplateColumn Width="100">
                                <DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <TextBlock Text="{Binding NormLiterature}"
                                                   VerticalAlignment="Stretch"
                                                   HorizontalAlignment="Stretch"
                                                   TextAlignment="Center"/>
                                    </DataTemplate>
                                </DataGridTemplateColumn.CellTemplate>
                            </DataGridTemplateColumn>

                        </DataGrid.Columns>
                    </DataGrid>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ListBox>

問題ないようです: http://i.stack.imgur.com/53KLx.png

しかし、親指をすばやくドラッグして水平スクロールを行うと、奇妙な余分なスペースが表示されます http://i.stack.imgur.com/GHl8k.png

ウィンドウのサイズを変更すると、余分なスペースが魔法のように消えます。それはどこから来たのですか?それを取り除く方法は?

単純な StackPanel を使用すれば問題ありませんが、仮想化を使用する必要があります。

4

0 に答える 0