WPF screen refresh problem

  • Thread starter Thread starter Griff
  • Start date Start date
G

Griff

Hi

I have a WPF application (VS 2008; .NET 3.5) which has several tab controls
and listViews.

When I start the application, it start in normal "window" mode. I can click
between the Tabs and it's reasonably responsive.

However, I've made the window resizeable.

The bigger the window appears, the slower the window responds to my clicking
on tabs - the slowest is when the window is Maximised.

Is this something peculiar to WPF - I hope not!

Thanks

Griff
 
Hi

I have a WPF application (VS 2008; .NET 3.5) which has several tab controls
and listViews.

When I start the application, it start in normal "window" mode. I can click
between the Tabs and it's reasonably responsive.

However, I've made the window resizeable.

The bigger the window appears, the slower the window responds to my clicking
on tabs - the slowest is when the window is Maximised.

Is this something peculiar to WPF - I hope not!

Thanks

Griff

How beefy is your computer? Is the program doing anything behind the
scenes that will be taking away resources? Have you tried building the
release version and running it without a debugger attached?

Thanks,

Seth Rowe [MVP]
 
How beefy is your computer? Is the program doing anything behind the
scenes that will be taking away resources? Have you tried building the
release version and running it without a debugger attached?

Fairly "beefy" - it's a Pentium R 4 3GHz server with 2GB RAM.

The PC isn't doing anything else significant behind the scenes.

This was running the RELEASE version.

A similar interface written using traditional "Windows" is very fast in
comparison.


Below is the XAML for my Window - paste it into a new WPF app and it should
show the performance I describe [I've probably done something wierd in the
XAML which is slowing it down somewhat (I'm a complete novice at WPF)]

Griff

<Window x:Class="winStartUp"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Title="Interface Files" Height="500" Width="700" Name="Window1"
SizeToContent="Manual" ResizeMode="CanResizeWithGrip"

WindowStartupLocation="CenterScreen" WindowState="Normal"

FontSize="10">

<Grid>

<Grid.ColumnDefinitions>

<ColumnDefinition Width="405*" />

<ColumnDefinition Width="441*" />

</Grid.ColumnDefinitions>

<GroupBox Header="Prerequisites" Height="90" Margin="10,10,8,0"
Name="GroupBox1" VerticalAlignment="Top" Grid.ColumnSpan="2"></GroupBox>

<Grid Height="100" VerticalAlignment="Top" Margin="14,16,14,0"
Grid.ColumnSpan="2">

<TextBox HorizontalContentAlignment="Left" Margin="146,13,12,0"
Name="txtFolder" AllowDrop="True" Height="25" VerticalAlignment="Top">

<TextBox.BitmapEffect>

<OuterGlowBitmapEffect GlowColor="Gold" />

</TextBox.BitmapEffect>

</TextBox>

<Label HorizontalAlignment="Left" Margin="15,13,0,41" Name="Label2"
Width="128">Paste Path into this box</Label>

<StackPanel Margin="146,48,12,24" Name="StackPanel1"
Orientation="Horizontal" HorizontalAlignment="Right">

<Label Background="Transparent" Height="24" Name="lblAccount" Width="88">

<Label.BitmapEffect>

<BevelBitmapEffect />

</Label.BitmapEffect> Choose account

</Label>

<ComboBox Height="22" ItemsSource="{Binding Name}" Name="cboAccount"
Width="172.787">

<ComboBox.BitmapEffect>

<OuterGlowBitmapEffect />

</ComboBox.BitmapEffect>

</ComboBox>

<Label Background="Transparent" Height="24" Name="lblProduct" Width="114">

<Label.BitmapEffect>

<BevelBitmapEffect />

</Label.BitmapEffect> Choose product code

</Label>

<TextBox Height="22" Name="txtProductCode" Width="114">

<TextBox.BitmapEffect>

<OuterGlowBitmapEffect />

</TextBox.BitmapEffect>

</TextBox>

</StackPanel>

<StackPanel Height="36" Margin="0,0,0.574,-30" Name="StackPanel2"
VerticalAlignment="Bottom" Orientation="Horizontal"
HorizontalAlignment="Right" Width="164.426">

<Button Height="23" Name="btnCancel" Width="75"
HorizontalContentAlignment="Center" Margin="5" Cursor="Hand">

<Button.BitmapEffect>

<BevelBitmapEffect EdgeProfile="CurvedOut" BevelWidth="5" />

</Button.BitmapEffect> Cancel

</Button>

<Button Height="23" Name="btnAnalyse" Width="75"
HorizontalContentAlignment="Center" Margin="5" Foreground="Red"
Cursor="Hand">

<Button.BitmapEffect>

<BevelBitmapEffect EdgeProfile="CurvedOut" BevelWidth="5" />

</Button.BitmapEffect> Analyse

</Button>

</StackPanel>

</Grid>

<TabControl Margin="14,148,8,8" Name="tabFileFormats" Grid.ColumnSpan="2">

<TabControl.BitmapEffect>

<DropShadowBitmapEffect />

</TabControl.BitmapEffect>

<TabItem Header="RPRD">

<TabControl Name="tabProductRecords">

<TabControl.BitmapEffect>

<DropShadowBitmapEffect />

</TabControl.BitmapEffect>

<TabItem Header="DLT">

<ListView Margin="15" Name="lvRprdDlt">

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

<TabItem Header="PRD">

<ListView Margin="15" Name="lvRprdPrd">

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

<TabItem Header="TXT">

<ListView Margin="15" Name="lvRprdTxt">

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

<TabItem Header="CAT">

<ListView Margin="15" Name="lvRprdCat">

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

<TabItem Header="XTR">

<ListView Margin="15" Name="lvRprdXtr">

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

<TabItem Header="LNK">

<ListView Margin="15" Name="lvRprdLnk">

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

<TabItem Header="PCL">

<ListView Margin="15" Name="lvRprdPcl">

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

<TabItem Header="UOM">

<ListView Margin="15" Name="lvRprdUom">

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

<TabItem Header="ATT">

<ListView Margin="15" Name="lvRprdAtt">

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

<TabItem Header="ATD">

<ListView Margin="15" Name="lvRprdAtd">

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

<TabItem Header="ATV">

<ListView Margin="15" Name="lvRprdAtv">

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

<TabItem Header="ATL">

<ListView Margin="15" Name="lvRprdAtl">

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

</TabControl>

</TabItem>

<TabItem Header="RPRI">

<TabControl Name="tabPricingRecords">

<TabControl.BitmapEffect>

<DropShadowBitmapEffect />

</TabControl.BitmapEffect>

<TabItem Header="DLT">

<ListView Margin="15" Name="lvRpriDlt" >

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

<TabItem Header="GPR">

<ListView Margin="15" Name="lvRpriGpr" >

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

<TabItem Header="DPR">

<ListView Margin="15" Name="lvRpriDpr" >

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

<TabItem Header="CPR">

<ListView Margin="15" Name="lvRpriCpr" >

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

<TabItem Header="ACT">

<ListView Margin="15" Name="lvRpriAct" >

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

<TabItem Header="PUR">

<ListView Margin="15" Name="lvRpriPur" >

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

<TabItem Header="CNR">

<ListView Margin="15" Name="lvRpriCnr" >

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

<TabItem Header="CNH">

<ListView Margin="15" Name="lvRpriCnh" >

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

<TabItem Header="CND">

<ListView Margin="15" Name="lvRpriCnd" >

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

</TabControl>

</TabItem>

<TabItem Header="RASS">

<TabControl Name="tabAssortmentRecords">

<TabControl.BitmapEffect>

<DropShadowBitmapEffect />

</TabControl.BitmapEffect>

<TabItem Header="DLT">

<ListView Margin="15" Name="lvRassDlt" >

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

<TabItem Header="ASS">

<ListView Margin="15" Name="lvRassAss" >

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

<TabItem Header="ASR">

<ListView Margin="15" Name="lvRassAsr" >

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

</TabControl>

</TabItem>

<TabItem Header="RSTR">

<TabControl Name="tabStructureRecords">

<TabControl.BitmapEffect>

<DropShadowBitmapEffect />

</TabControl.BitmapEffect>

<TabItem Header="Level1">

<ListView Margin="15" Name="lvRstrL1" >

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

<TabItem Header="Level2">

<ListView Margin="15" Name="lvRstrL2" >

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

<TabItem Header="Level3">

<ListView Margin="15" Name="lvRstrL3" >

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

<TabItem Header="Level4">

<ListView Margin="15" Name="lvRstrL4" >

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

<TabItem Header="Level5">

<ListView Margin="15" Name="lvRstrL5" >

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

<TabItem Header="Level6">

<ListView Margin="15" Name="lvRstrL6" >

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

<TabItem Header="Level7">

<ListView Margin="15" Name="lvRstrL7" >

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

</TabControl>

</TabItem>

<TabItem Header="RACD">

<TabControl Name="tabCrossSellingRecords">

<TabControl.BitmapEffect>

<DropShadowBitmapEffect />

</TabControl.BitmapEffect>

<TabItem Header="DLT">

<ListView Margin="15" Name="lvRacdDlt" >

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

<TabItem Header="ACD">

<ListView Margin="15" Name="lvRacdAcd" >

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

<TabItem Header="ACG">

<ListView Margin="15" Name="lvRacdAcg" >

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

<TabItem Header="ALT">

<ListView Margin="15" Name="lvRacdAlt" >

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

</TabControl>

</TabItem>

<TabItem Header="Control">

<TabControl Name="tabControlRecords">

<TabControl.BitmapEffect>

<DropShadowBitmapEffect />

</TabControl.BitmapEffect>

<TabItem Header="Dealer">

<ListView Margin="15" Name="lvCtrlDealer" >

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

<TabItem Header="AccountDelete">

<ListView Margin="15" Name="lvCtrlAccDel" >

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

<TabItem Header="AccountAdd">

<ListView Margin="15" Name="lvCtrlAccAdd" >

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

<TabItem Header="Addresses">

<ListView Margin="15" Name="lvCtrlAddresses" >

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

</TabControl>

</TabItem>

<TabItem Header="Exception pricing">

<TabControl Name="tabExceptionPricingRecords">

<TabControl.BitmapEffect>

<DropShadowBitmapEffect />

</TabControl.BitmapEffect>

<TabItem Header="Exceptions">

<ListView Margin="15" Name="lvExceptions" >

<ListView.View>

<GridView>

<GridViewColumn Header="Key" DisplayMemberBinding="{Binding Key}"/>

<GridViewColumn Header="Value" DisplayMemberBinding="{Binding Value}"/>

</GridView>

</ListView.View>

</ListView>

</TabItem>

</TabControl>

</TabItem>

</TabControl>

</Grid>

</Window>
 
Turns out that the bitmaps take a long time to calculate, so getting rid of
them improves things no end.
 
Back
Top