首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果我在StackPanel中添加了很多控件,是否应用了UI虚拟化?

如果我在StackPanel中添加了很多控件,是否应用了UI虚拟化?
EN

Stack Overflow用户
提问于 2011-09-10 00:28:34
回答 1查看 562关注 0票数 0

我有一个关于StackPanel中UI虚拟化的问题。

代码语言:javascript
复制
<ScrollViewer>
    <StackPanel Orientation="Vertical">
        <!--item1.-->
        <StackPanel Orientation="Horizontal" Margin="5">
            <Button/> 
            <TextBlock Text="oh hi."/>
        </StackPanel>        

        <!--item2.-->
        <StackPanel Orientation="Horizontal" Margin="5">
            <Button/> 
            <TextBlock Text="oh hi."/>
        </StackPanel>        

        <!--item3.-->
        <StackPanel Orientation="Horizontal" Margin="5">
            <Button/> 
            <TextBlock Text="oh hi."/>
        </StackPanel>        

        <!--item4.-->
        <StackPanel Orientation="Horizontal" Margin="5">
            <Button/> 
            <TextBlock Text="oh hi."/>
        </StackPanel>        

        ...


        <!--item9999.-->
        <StackPanel Orientation="Horizontal" Margin="5">
            <Button/> 
            <TextBlock Text="oh hi."/>
        </StackPanel>        

    </StackPanel>
</ScrollViewer>

我听说过WPF UI虚拟化。

然后,如果我在StackPanel中添加了很多控件,UI虚拟化在这个StackPanel上会自动工作吗?

我知道StackPanel.VirtualizingStackPanel.IsVirtualizing在默认情况下设置为True。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-10 00:43:26

不过,这里的示例并不是“虚拟的”。您已经在堆栈面板中显式创建了9999项。

虚拟化是指当其他一些项目控件(如列表、树、网格)在其内部有一个虚拟化面板时,项目控件根据需要生成/删除/重用项目,以使堆栈面板看起来有9999个项目,而实际上它只有几个项目。

与上面的比较最简单的是一个ListBox控件,其中有一个包含9999项列表的ItemsSource,以及一个DataTemplate:

代码语言:javascript
复制
<ListBox ItemsSource="{Binding Path=TheListOf9999Items}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal" Margin="5">  
                <Button/>   
                <TextBlock Text="oh hi."/>  
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

列表框内部将有一个虚拟化堆栈面板(它的ItemsPanel),它将在您向上和向下滚动时根据需要生成项目。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7364718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档