C# ExpanderView在扩展时性能不佳(XAML+;UWP)

C# ExpanderView在扩展时性能不佳(XAML+;UWP),c#,wpf,xaml,expander,uwp,C#,Wpf,Xaml,Expander,Uwp,我正在构建一个UWP应用程序,它使用WPF()的ExpanderView的a移植版本,我使用一个列表框显示多个ExpanderView,具体取决于我的视图模型中的数据。我在扩展带有许多项的ExpanderView时面临性能问题。正如您在GIF中看到的,第一个父项的展开非常缓慢,需要一些时间来显示所有子项。如果父对象没有那么多子对象,则动画相当平滑 有没有人有过这种控制的经验,可以帮助我加快扩展速度 这是我的XAML代码: <Grid> <ListBox

我正在构建一个UWP应用程序,它使用WPF()的ExpanderView的a移植版本,我使用一个列表框显示多个ExpanderView,具体取决于我的视图模型中的数据。我在扩展带有许多项的ExpanderView时面临性能问题。正如您在GIF中看到的,第一个父项的展开非常缓慢,需要一些时间来显示所有子项。如果父对象没有那么多子对象,则动画相当平滑

有没有人有过这种控制的经验,可以帮助我加快扩展速度

这是我的XAML代码:

        <Grid>
    <ListBox Name="listbox">
        <ListBox.ItemContainerStyle>
            <Style TargetType="ListBoxItem">
                <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
            </Style>
        </ListBox.ItemContainerStyle>
        <ListBox.ItemsPanel>
            <ItemsPanelTemplate>
                <StackPanel/>
            </ItemsPanelTemplate>
        </ListBox.ItemsPanel>
        <ListBox.ItemTemplate>
            <DataTemplate x:DataType="models:Parent">
                <controls:ExpanderControl
                    ItemsSource="{x:Bind Childs}"
                    HeaderTemplate="{StaticResource CustomHeaderTemplate}" 
                    ExpanderTemplate="{StaticResource CustomExpanderTemplate}"
                    ItemTemplate="{StaticResource CustomItemTemplate}"
                    NonExpandableHeaderTemplate="{StaticResource CustomNonExpandableHeaderTemplate}" />
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
</Grid>

此代码来自模型

public class Category
{
    public string Name{ get; set; }
    public List<Subcategory> Childs{ get; set; }
}
公共类类别
{
公共字符串名称{get;set;}
公共列表子项{get;set;}
}

贾斯汀XL为我指明了正确的方向! 此行为是由ExpanderView的动画引起的

在类
ExpanderControl.cs
中,有这些属性用于控制折叠和展开过程的动画

    private const int KeyTimeStep = 35;
    private const int InitialKeyTime = 225;
    private const int FinalKeyTime = 250;
减小KeyTimeStep的值会导致更快地展开和折叠动画


谢谢

这不是性能问题。。。对我来说,它看起来很光滑。动画只是有一个级联效果,通过一个短暂的延迟一个接一个地为项目设置动画。如果你不想要这种行为,你需要找到动画代码并进行更改。Hello@JustinXL,我在UWP Win-10(通用应用程序)中尝试过,但没有成功。。。你能帮帮我吗。我需要具有精确外观和动画的精确控件。@ZiaUrRahman我创建了一个UWP优化版本的控件。你可以在GitHub上找到它