Imports Infragistics.Shared Imports Infragistics.Win Imports Infragistics.Win.UltraWinDock Private Sub LogDockInfoFromPoint(ByVal pt As Point) ' Use the UltraDockManager's ElementFromPoint to access ' the dock manager UIElement at the specified screen coordinate Dim element As UIElement = Me.ultraDockManager1.ElementFromPoint(pt) ' Log the information to the debug window Debug.WriteLine(New String("=", 50)) Debug.WriteLine(String.Format("Dock Information From Point:", pt)) Debug.Indent() Debug.WriteLine("UIElement Info:") Debug.Indent() If element Is Nothing Then Debug.WriteLine("null") Else Me.OutputElementInfo(element) End If Debug.Unindent() ' The 'PaneFromPosition' method accepts screen coordinates ' and a boolean indicating whether to ignore the floating ' windows. ' Passing in true for the 'ignoreFloatingWindows' argument ' will only check the docked panes on the host control Dim dockedPane As DockablePaneBase = Me.ultraDockManager1.PaneFromPosition(pt, True) ' Passing in false will include the floating windows when ' checking the coordinate Dim anyPane As DockablePaneBase = Me.ultraDockManager1.PaneFromPosition(pt, False) Debug.WriteLine("Pane From Position (Ignoring Floating Windows):") Debug.Indent() If dockedPane Is Nothing Then Debug.WriteLine("null") Else Me.OutputPaneInfo(dockedPane) End If Debug.Unindent() Debug.WriteLine("Pane From Position (Including Floating Windows):") Debug.Indent() If dockedPane Is anyPane Then Debug.WriteLine("Same as ignoring floating windows") ElseIf anyPane Is Nothing Then Debug.WriteLine("null") Else ' The only time this will be is if we are over a floating ' window that is positioned over another docked pane Me.OutputPaneInfo(anyPane) End If Debug.Unindent() Debug.Unindent() Debug.WriteLine(New String("=", 50)) End Sub Private Sub OutputPaneInfo(ByVal pane As DockablePaneBase) ' The ToString method of the pane includes information ' about the pane including Debug.Write(pane.ToString()) If (pane.IsActive) Then Debug.Write(", [Active Pane]") End If If (pane.IsSelectedTab) Then Debug.Write(", [Selected Tab]") End If If (pane.MaximizedResolved) Then Debug.Write(", [Maximized]") ElseIf (pane.MinimizedResolved) Then Debug.Write(", [Minimized]") End If Debug.WriteLine(String.Empty) ' Walk up the parent change If Not pane.Parent Is Nothing Then Debug.Indent() Me.OutputPaneInfo(pane.Parent) Debug.Unindent() End If End Sub Private Sub OutputElementInfo(ByVal element As UIElement) Debug.Write(element.ToString()) ' Get the default context for the element Dim defaultContext As Object = element.GetContext(Nothing, False) If Not defaultContext Is Nothing Then Debug.Write(String.Format(", Context = '{0}'", defaultContext)) End If Debug.WriteLine(String.Empty) If Not element.Parent Is Nothing Then Debug.Indent() Me.OutputElementInfo(element.Parent) Debug.Unindent() End If End Sub
using Infragistics.Shared; using Infragistics.Win; using Infragistics.Win.UltraWinDock; using System.Diagnostics; private void LogDockInfoFromPoint( Point pt ) { // Use the UltraDockManager's ElementFromPoint to access // the dock manager UIElement at the specified screen coordinate UIElement element = this.ultraDockManager1.ElementFromPoint(pt); // Log the information to the debug window Debug.WriteLine( new string('=', 50) ); Debug.WriteLine( string.Format("Dock Information From Point:", pt)); Debug.Indent(); Debug.WriteLine("UIElement Info:"); Debug.Indent(); if (element == null) Debug.WriteLine("{null}"); else this.OutputElementInfo(element); Debug.Unindent(); // The 'PaneFromPosition' method accepts screen coordinates // and a boolean indicating whether to ignore the floating // windows. // Passing in true for the 'ignoreFloatingWindows' argument // will only check the docked panes on the host control DockablePaneBase dockedPane = this.ultraDockManager1.PaneFromPosition(pt,true); // Passing in false will include the floating windows when // checking the coordinate DockablePaneBase anyPane = this.ultraDockManager1.PaneFromPosition(pt,false); Debug.WriteLine("Pane From Position (Ignoring Floating Windows):"); Debug.Indent(); if (dockedPane == null) Debug.WriteLine("{null}"); else this.OutputPaneInfo(dockedPane); Debug.Unindent(); Debug.WriteLine("Pane From Position (Including Floating Windows):"); Debug.Indent(); if (dockedPane == anyPane) Debug.WriteLine("Same as ignoring floating windows"); else if (anyPane == null) Debug.WriteLine("{null}"); else { // The only time this will be is if we are over a floating // window that is positioned over another docked pane this.OutputPaneInfo(anyPane); } Debug.Unindent(); Debug.Unindent(); Debug.WriteLine( new string('=', 50) ); } private void OutputPaneInfo( DockablePaneBase pane ) { // The ToString method of the pane includes information // about the pane including Debug.Write( pane.ToString() ); if (pane.IsActive) Debug.Write(", [Active Pane]"); if (pane.IsSelectedTab) Debug.Write(", [Selected Tab]"); if (pane.MaximizedResolved) Debug.Write(", [Maximized]"); else if (pane.MinimizedResolved) Debug.Write(", [Minimized]"); Debug.WriteLine(string.Empty); // Walk up the parent change if (pane.Parent != null) { Debug.Indent(); this.OutputPaneInfo(pane.Parent); Debug.Unindent(); } } private void OutputElementInfo( UIElement element ) { Debug.Write( element.ToString() ); // Get the default context for the element object defaultContext = element.GetContext(null, false); if (defaultContext != null) Debug.Write(string.Format(", Context = '{0}'", defaultContext)); Debug.WriteLine(string.Empty); if (element.Parent != null) { Debug.Indent(); this.OutputElementInfo(element.Parent); Debug.Unindent(); } }
Target Platforms: Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Server 2012, Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2