Виртуализация WPF TreeView прерывается, как только в окно добавляется что-либо - PullRequest
0 голосов
/ 14 августа 2011

Виртуализация работает, когда TreeView - единственная вещь в окне.Например:

<Grid>
    <vw:FontTreeView  x:Name="fontTreeViewControl" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" BorderThickness="0" />
</Grid>

Но даже простое добавление определений строк полностью разрушает виртуализацию:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>

    <vw:FontTreeView  x:Name="fontTreeViewControl" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" BorderThickness="0" />

</Grid>

Мой стиль TreeViewItem имеет следующий триггер:

<Style.Triggers>
    <Trigger Property="VirtualizingStackPanel.IsVirtualizing" Value="true">
        <Setter Property="ItemsPanel">
            <Setter.Value>
                <ItemsPanelTemplate>
                    <VirtualizingStackPanel/>
                </ItemsPanelTemplate>
            </Setter.Value>
        </Setter>
    </Trigger>
</Style.Triggers>

Иконечно, TreeView имеет VirtualizingStackPanel.IsVirtualizing = "True"

Q.Как я могу иметь другие элементы в моем окне, не нарушая виртуализацию?Спасибо, помощь очень ценится.

1 Ответ

0 голосов
/ 15 сентября 2011

Моя проблема была с установкой высоты на Авто. Он должен быть либо исправлен, либо вместо него использовать *. В моем случае в RowDefinition.

...