gpt4 book ai didi

c# - 为什么 WPF 渲染折叠或隐藏控件?

转载 作者:太空宇宙 更新时间:2023-11-03 10:30:08 34 4
gpt4 key购买 nike

我正在测试我的 WPF 应用程序。我对这个项目的性能有疑问。

为什么 WPF 呈现折叠或隐藏控件?

如果我折叠或显示控件,我的 CPU 使用率不会改变。

例子:

<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal" Height="30">
<Button Content="visible" Margin="5" Padding="5,0,5,0" Click="Button_Click"/>
<Button Content="hidden" Margin="5" Padding="5,0,5,0" Click="Button_Click_1"/>
<Button Content="collapsed" Margin="5" Padding="5,0,5,0" Click="Button_Click_2"/>
</StackPanel>
<StackPanel Grid.Row="1" x:Name="renderStack">
<ProgressBar Height="30" IsIndeterminate="True"/>
<ProgressBar Height="30" IsIndeterminate="True"/>
<ProgressBar Height="30" IsIndeterminate="True"/>
<ProgressBar Height="30" IsIndeterminate="True"/>
<ProgressBar Height="30" IsIndeterminate="True"/>
<ProgressBar Height="30" IsIndeterminate="True"/>
<ProgressBar Height="30" IsIndeterminate="True"/>
<ProgressBar Height="30" IsIndeterminate="True"/>
<ProgressBar Height="30" IsIndeterminate="True"/>
<ProgressBar Height="30" IsIndeterminate="True"/>
<ProgressBar Height="30" IsIndeterminate="True"/>
<ProgressBar Height="30" IsIndeterminate="True"/>
</StackPanel>
</Grid>

代码隐藏:

    private void Button_Click(object sender, RoutedEventArgs e)
{
renderStack.Visibility = System.Windows.Visibility.Visible;
}

private void Button_Click_1(object sender, RoutedEventArgs e)
{
renderStack.Visibility = System.Windows.Visibility.Hidden;
}

private void Button_Click_2(object sender, RoutedEventArgs e)
{
renderStack.Visibility = System.Windows.Visibility.Collapsed;
}

最佳答案

我知道这是旧的,但以防万一有人来看。我发现即使对象被隐藏得更多,所以当设置为不确定时进度条仍然会在隐藏或折叠时占用处理器,因为它仍在渲染动画。尝试在隐藏或折叠它的同时使用 .IsIndeterminate = False,您应该会看到 cpu 使用下降。

关于c# - 为什么 WPF 渲染折叠或隐藏控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30477901/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com