Very Slow loading/resizing of panes that include WindowsFormsHost Control

Sep 5, 2009 at 9:11 AM

Hi again.

Following the post of Ryan  and Aiden dated August 1st, i would also like to know if we should expect (and when to expect) an improvement on the performance of resizing panes that Host WindowsForms.

In our project we use dataGridControls, treeview, propertyGridContainer and DirectX, hosted in different WindowsFormsHost Controls .

I believe that, generally,  improving the performance on loading and while resizing the panes that Host WindowsForms,  is of critical importance since this slow response makes the whole application feel unfriendly to the user.

Any ideas for a workaround?

Thanks

Louis 

 

Sep 5, 2009 at 6:49 PM

Hi Louis,
I think it's not a problem of AvalonDock. I got the same result with DevComponents Docking Suite.
Every time I used WinForms objects, it was slow.

I think it's more a problem of WPF. When you use DirectX, it's normal, because the device has to be recreated every time.

So that's normal. Try to use more WPF controls instead of WinForms.

Juergen

Sep 6, 2009 at 9:41 AM

Hi juergen

 

Thanks for the advice. However i think that the performance was better before the upgrade v1.2.

About the shift to the WPF controls, i am sure that you are more aware than me that WPF lags a lot in several sectors such as the 3D (our project is a  3D, polarized, multithreading Ray Tracing Simulator (3DTruEM). 3DTruEM calculation engine implements a sophisticated ray tracing algorithm offering improved accuracy and efficiency. 3D electromagnetic (EM) formulations are implemented to calculate reflection, refraction and diffraction effects and this requires the best utilization of resources.

Additionally, i think that WPF does not include very important figures such as the property grid,  or it includes them in basic forms that are not the easiest to use (take for example the Canvas and try to implement graphs with zoom etc..) . All these are forcing us, until now,  to partially use the WPF.

By the way, i find your contribution in AvalonDock very important and helpful , and i think that it is for the benefit of all to join the development Team.

P.S. Do you have a link that describes TriVista?

Louis

 

 

 

 

 

 

Sep 6, 2009 at 10:51 AM

Hi Louis,
I tried to use several options instead of using DirectX. I wanted to do the job in WPF, but that didn't work when I had to display more than 5000 lines.
I wrote some line routines to draw it directly into a bitmap. It worked, but the same problem with many lines.

I tried it directly in WPF with geometry drawing, .........

DirectX is the fastest way to do the job. I use SlimDX as a library, and it works.

You are right with the property grid. There was a basic solution on codeplex. Now it's ready to use and commercial :-)
There is no GropertyGrid that comes for free in WPF that works until now. I don't know why. I think it's not so hard.

I thought to start a new project on this.

I don't have a link to describe the TriVista project.
There is only a help-file, that describes the software. You can have a look at "http://www.viart.de/download/TriVista.chm"

Juergen

Sep 6, 2009 at 1:12 PM

Thanks Juergen. i will have a look

 

Louis

Sep 7, 2009 at 7:54 AM

Hi,

Regarding WPF-WinForms integration perfomance I'm afraid that there is not so much improvement possible, at least nothing that can we make with this version of the platform (3.5 SP1).In v.1.2 it is slower becaouse I used Regions Win32 API to move/resize the flyout panes instead of simply move them.

Just other options that you maybe already saw is the integration with directx via D3DImage (see http://www.codeproject.com/KB/WPF/D3DImage.aspx) and the opensource PropertyGrid (http://www.codeplex.com/wpg).

Ado

 

Sep 7, 2009 at 1:34 PM

Hi Ado.

Thanks for the advice

 

Louis

Sep 7, 2009 at 4:17 PM

Hi again,

Forget about the D3DImage. It's so slow and you can not define, when you want to Render a scene. It does it permanently.

If you are interested in my control, I can send it to you via email. It uses the SlimDX library.

Juergen