C# WPF窗口在调整大小时闪烁

C# WPF窗口在调整大小时闪烁,c#,wpf,C#,Wpf,我有一个非常简单的窗口,由以下XAML定义(视图模型中目前没有逻辑): 当用户调整窗口大小时,窗口的新区域将闪烁黑色。 有没有办法防止这种闪烁 我不认为这个现存的问题是重复的。它包含完全自定义的窗口,带有动画 这是由窗口中增加的调试时间造成的。尝试在没有附加调试程序的情况下运行它。我也遇到了同样的问题,但我通过使用升级版的Microsoft.Windows.Shell的nuget软件包edge.windowchrome解决了这个问题 它帮助我消除了闪烁 注意:它只适用于最新版本的Wind

我有一个非常简单的窗口,由以下XAML定义(视图模型中目前没有逻辑):


当用户调整窗口大小时,窗口的新区域将闪烁黑色。

有没有办法防止这种闪烁


我不认为这个现存的问题是重复的。它包含完全自定义的窗口,带有动画


这是由窗口中增加的调试时间造成的。尝试在没有附加调试程序的情况下运行它。

我也遇到了同样的问题,但我通过使用升级版的Microsoft.Windows.Shell的nuget软件包edge.windowchrome解决了这个问题

它帮助我消除了闪烁

注意:它只适用于最新版本的Windows 10(redstone)

使用它可能会解决您的问题

请参见以下示例屏幕截图:


您可以从此处删除完整的标题栏。在
main窗口中指定属性
showttitlebar=“false”

我知道这很旧,但正如公认的答案所示,这是因为调试工具。如果您不使用或不依赖XAML的UI调试工具,您会发现禁用XAML的UI调试工具会显著提高性能:

工具>选项>调试>常规>启用XAML的UI调试工具

当然,在调试器之外运行应用程序应该会显示应用程序的实际性能。使用任何IDE作为调试器运行您的程序无疑会大大降低其速度,这只是调试器与您的程序交互、监视它所做的一切以及侦听异常等方式的结果

<Window x:Class="WpfViewer.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:local="clr-namespace:WpfViewer"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        Title="MainWindow"
        Width="525"
        Height="350"
        d:DataContext="{d:DesignInstance local:MainWindowVm}"
        mc:Ignorable="d">
    <Grid Margin="8">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="200" />
            <ColumnDefinition Width="8" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <StackPanel Grid.Row="0"
                    Grid.Column="0"
                    Grid.ColumnSpan="3"
                    Orientation="Horizontal" Margin="0,0,0,8">
            <TextBlock Text="Object" />
            <!--  breadcrumbs  -->
        </StackPanel>
        <Border Grid.Row="1"
                Grid.Column="0"
                BorderBrush="Black"
                BorderThickness="1" />
        <GridSplitter Grid.Row="1"
                      Grid.Column="1"
                      Width="8"
                      Background="{DynamicResource {x:Static SystemColors.WindowBrush}}"
                      ResizeBehavior="PreviousAndNext" />
        <Border Grid.Row="1"
                Grid.Column="2"
                BorderBrush="Black"
                BorderThickness="1" />
    </Grid>
</Window>