我有一个非常简单的窗口,使用以下XAML定义(视图模型中当前没有逻辑):
<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>
有没有办法防止这种闪烁?
我不相信这个现有的问题是重复的。它涉及完全自定义窗口,带有动画。
答案 0 :(得分:3)
我知道这很旧,但是正如公认的答案所暗示的,这是由于调试工具所致。如果您不使用或不依赖XAML的UI调试工具,就会发现其性能显着提高。
工具>选项>调试>常规>为XAML启用UI调试工具
当然,在调试器外部运行该应用程序应该向您显示该应用程序的 actual 性能。毫无疑问,使用任何IDE作为调试器运行程序都会大大降低其运行速度,这仅仅是调试器与程序交互,监视其所做的所有操作以及侦听异常等方式的结果。
答案 1 :(得分:2)
这是由添加到窗口的调试时间引起的。尝试在没有附加调试器的情况下运行它。
答案 2 :(得分:-1)
我遇到了同样的问题,但是我通过使用nuget包 edge.windowchrome Microsoft.Windows.Shell
的升级版来解决了它帮助我消除了闪烁
注意:它只能在最新版本的Windows 10(红石版)中很好地工作
答案 3 :(得分:-1)