WPF screen refresh problem

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
 
R

rowe_newsgroups

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]
 
G

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?

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>
 
G

Griff

Turns out that the bitmaps take a long time to calculate, so getting rid of
them improves things no end.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top