WPF Debugger
No edit summary
(Automatically adding template at the end of the page.)
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
We added a new WPF debugger to MDriven Designer some time ago. Now it is also available in runtime for inclusion in your WPF applications.
We added a new WPF debugger to MDriven Designer some time ago. Now, it is also available in runtime for you to include in your WPF applications.


If you have a WPF application that make use of some windows forms - and that you "Application" object is really of winform kind - then you need to instruct WPF that this is the case on a window by window basis:
If you have a WPF application that makes use of some Windows forms - and your "Application" object is of winform kind - then you need to instruct WPF that this is the case on a window-by-window basis:
  Eco.WPF.WPFDequeuer.Active = true;  // The debugger (and all MDriven WPF UI needs the WPFDequeuer active to make derivations on screen evaluate)
  Eco.WPF.WPFDequeuer.Active = true;  // The debugger (and all MDriven WPF UI needs the WPFDequeuer active to make derivations on screen evaluate)
   
   
  var wpfdebugger = new MDriven.WPF.Debugger.OCLRuntimeDebuggerWPF(GA.Singleton.GetCurrentEcoSpace());
  var wpfdebugger = new MDriven.WPF.Debugger.OCLRuntimeDebuggerWPF(GA.Singleton.GetCurrentEcoSpace());
   
   
  // Next 2 row2 are optional - needed when mixing WinForms and WPF to make keyboard work
  // Next 2 rows are optional - needed when mixing WinForms and WPF to make keyboard work
  AutoFormWPF.OnNewAutoFormWPFCreated += (s, e) => { System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop(e.AutoFormWPF); };
  AutoFormWPF.OnNewAutoFormWPFCreated += (s, e) => { System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop(e.AutoFormWPF); };
  System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop(wpfdebugger);
  System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop(wpfdebugger);
   
   
  wpfdebugger.Show();
  wpfdebugger.Show();
In the code above notice the System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop call on the WPF form - this ensures that keys and events work for true WPF forms in a Windows forms environment.
In the code above, notice the ''System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop'' call on the WPF form. This ensures that keys and events work for true WPF forms in a Windows forms environment.
[[Category:MDriven Designer]]
[[Category:Debugging]]
{{Edited|July|12|2024}}

Latest revision as of 15:50, 10 February 2024

We added a new WPF debugger to MDriven Designer some time ago. Now, it is also available in runtime for you to include in your WPF applications.

If you have a WPF application that makes use of some Windows forms - and your "Application" object is of winform kind - then you need to instruct WPF that this is the case on a window-by-window basis:

Eco.WPF.WPFDequeuer.Active = true;  // The debugger (and all MDriven WPF UI needs the WPFDequeuer active to make derivations on screen evaluate)

var wpfdebugger = new MDriven.WPF.Debugger.OCLRuntimeDebuggerWPF(GA.Singleton.GetCurrentEcoSpace());

// Next 2 rows are optional - needed when mixing WinForms and WPF to make keyboard work
AutoFormWPF.OnNewAutoFormWPFCreated += (s, e) => { System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop(e.AutoFormWPF); };
System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop(wpfdebugger);

wpfdebugger.Show();

In the code above, notice the System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop call on the WPF form. This ensures that keys and events work for true WPF forms in a Windows forms environment.

This page was edited 91 days ago on 02/10/2024. What links here