I atteched a copy of the SDK example "DochableDialogs". The only difference is in file ExternalCommandRegisterPage.cs, 53:
ThisApplication.thisApp.GetMainWindow().SetInitialDockingParameters(dlg.FloatLeft, dlg.FloatRight, dlg.FloatTop, dlg.FloatBottom, dlg.DockPosition, dlg.TargetGuid); try { ThisApplication.thisApp.RegisterDockableWindow(commandData.Application, dlg.MainPageGuid); commandData.Application.DockableFrameFocusChanged += new EventHandler<Autodesk.Revit.UI.Events.DockableFrameFocusChangedEventArgs>((sender, e) => { TaskDialog.Show("Event", "Raised!"); }); } catch (Exception ex) { TaskDialog.Show(Globals.ApplicationName, ex.Message); }
In order to reproduce the test Case you simply have to follow the steps described in the readme file:
Instructions: Build and install the addin, and start Revit. Before opening a document, select the “Register” ribbon button in the “DockableDialogs” ribbon tab to launch the registration dialog. Select a docking style (bottom, top, tabbed, floating, etc…). After opening a document, note the docked-modeless API window in the UI. The “Hide” and “Show” buttons in the DockableDialogs ribbon can hide and show the dialog without destroying it.
The expected behaviour is to show a tast dialog each time the DockablePane lose Focus, what is never happening.
please reply in case you need more info.