Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WindowChrome causes flickering on resize #1176

Open
bugproof opened this issue Jul 4, 2019 · 7 comments
Open

WindowChrome causes flickering on resize #1176

bugproof opened this issue Jul 4, 2019 · 7 comments
Labels
Bug Product bug (most likely) .NET Framework
Milestone

Comments

@bugproof
Copy link

bugproof commented Jul 4, 2019

Problem description:

I'm using WindowChrome to restyle my window in an easy fast way but the problem is there is flickering when resizing the window, especially when resizing from left to right.

https://stackoverflow.com/questions/51669632/wpf-windowchrome-causing-flickering-on-resize

Minimal repro:

<Window x:Class="View.Settings"
    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:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    Height="570" Width="800" WindowStartupLocation="CenterOwner"
    Background="{StaticResource DarkGrayBackground}" ResizeMode="CanResize" 
    WindowStyle="SingleBorderWindow"
    Title="Settings"
    WindowState="Normal">
<WindowChrome.WindowChrome>
    <WindowChrome 
        CaptionHeight="0"
        CornerRadius="0"
        GlassFrameThickness="1"
        UseAeroCaptionButtons="False"
        ResizeBorderThickness="5"
        NonClientFrameEdges="None"/>
</WindowChrome.WindowChrome>

<Border BorderBrush="Black" BorderThickness="1">
    <DockPanel HorizontalAlignment="Stretch" LastChildFill="True" Margin="0,0,0,0" VerticalAlignment="Stretch">
        <!--TitleBar-->
        <Border DockPanel.Dock="Top" BorderBrush="{StaticResource GrayBorder}" BorderThickness="0,0,0,1">
            <Grid Height="40" Background="{StaticResource WhiteBackground}">
                <DockPanel LastChildFill="False">
                    <Image DockPanel.Dock="Left" Margin="0,0,5,0" ></Image>
                    <Label DockPanel.Dock="Left" Content="{DynamicResource settings}" Margin="0,0,0,0" HorizontalAlignment="Center" VerticalAlignment="Center"></Label>
                    <Button DockPanel.Dock="Right" Style="{StaticResource CloseButton}" x:Name="CloseBtn"/>
                </DockPanel>
            </Grid>
        </Border>
        <!--Left Menu-->
        <Border DockPanel.Dock="Left" Width="180" Background="{StaticResource GrayBackground}" BorderBrush="{StaticResource GrayBorder}" BorderThickness="0,0,1,0">
            <DockPanel Margin="0,40,0,0"  Width="180" LastChildFill="False">
                <Button DockPanel.Dock="Top" Style="{StaticResource BigGrayButton}" 
                            Content="{DynamicResource general}"/>
            </DockPanel>
        </Border>
        <!--Bottom bar-->
        <Border DockPanel.Dock="Bottom" BorderBrush="{StaticResource GrayBorder}" BorderThickness="0,1,0,0" Height="40" Background="{StaticResource WhiteBackground}">
            <DockPanel LastChildFill="False">

            </DockPanel>
        </Border>
        <!--Main Page-->
        <ScrollViewer Background="{StaticResource DarkGrayBackground}" IsTabStop="True" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" DockPanel.Dock="Top">
            <DockPanel LastChildFill="False" Margin="10,0,10,10">
                <Label DockPanel.Dock="Top" Height="40" FontSize="16" FontWeight="SemiBold" VerticalContentAlignment="Center" Content="{DynamicResource general}"/>
                <Frame DockPanel.Dock="top" x:Name="MainFrame"></Frame>
            </DockPanel>
        </ScrollViewer>
    </DockPanel>
</Border>
@bugproof bugproof changed the title WindowChrome causing flickering on resize WindowChrome causes flickering on resize Jul 4, 2019
@grubioe grubioe added this to the Future milestone Jul 8, 2019
@grubioe grubioe added area-netfx Bug Product bug (most likely) labels Jul 8, 2019
@Safirion
Copy link

Safirion commented Oct 11, 2019

This problem has bothered developers for almost 20 years, a resolution in the .Net 5 would be welcome...

https://stackoverflow.com/questions/53000291/how-to-smooth-ugly-jitter-flicker-jumping-when-resizing-windows-especially-drag/53032927

I have spend one days of my work time to try fixing this unsuccessfully...

@wyshmily
Copy link

This problem is annoying me, too!

@JeremyWu917
Copy link

This problem has bothered developers for almost 20 years, a resolution in the .Net 5 would be welcome...

https://stackoverflow.com/questions/53000291/how-to-smooth-ugly-jitter-flicker-jumping-when-resizing-windows-especially-drag/53032927

I have spend one days of my work time to try fixing this unsuccessfully...

Respect

@Mal-kingston
Copy link

I thought I'm the only one that is having this issue.

@phamhieus
Copy link

I set : NonClientFrameEdges="Right", it works perfectly
https://stackoverflow.com/a/54904747/18203436

@Safirion
Copy link

No it just moves the flickering to another side of the window

@MichaeIDietrich
Copy link
Contributor

For the given example setting NonClientFrameEdges="Right" fixes the flickering. There seems to be no flickering with other sides.
Can you give an example where other sides are still flickering?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Product bug (most likely) .NET Framework
Projects
None yet
Development

No branches or pull requests

9 participants