I'm tempted to propose porting some windows forms based arcmap tools to WPF.

Before doing that though, I'd like to hear from others who have done something similar, and what sorts of issues were encountered.

Compared to Windows Forms, how stable is WPF in Arcmap?


I've had no issues with WPF in ArcGIS whatsoever. The question of chosing one of these technologies over the other is the same as in any other environment, be it ArcGIS or not.

There are things to consider, though. If you want to use WPF as replacement for your forms, then you are definitely OK. If you'd like to use WPF in scenarios like e.g. docking windows, you need to be more careful since WPF/Win32 interoperablity can have subtle issues and performance impact. In my experience though, these arise rarely, and in very corner-case situations.

Another thing to consider is whether your applications run in environments like Citrix or are very often accessed via remote desktop. In those cases, the WPF drawing pipeline can easily slow things down, especially (but not only) when you make use of advanced effects.

| improve this answer | |
  • Thanks Petr. I'll be doing a lot of property windows. I don't think I'll need to do a custom property inspector, but am not sure. Have you done any custom IObjectInspector implementations with WPF? – Kirk Kuykendall May 23 '11 at 14:09

The only problem your going to come across is if you use the map control and the toolbar controls. You will have to host the controls inside a winhost control. Which makes it impossible to overlay any WPF controls.

| improve this answer | |

One annoyance I have found is that ArcMap add-ins force the dependency of the System.Windows.Forms assembly for certain add-in types such as Tools and their MouseEventArgs class which derives from the Windows Forms equivalent. Why, ESRI, why?

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.