public static Orientation GetOrientation(this Panel panel) { if (panel == null) { return(0); } WrapPanel wrapPanel = panel as WrapPanel; if (wrapPanel != null) { return(wrapPanel.Orientation); } TabPanel tabPanel = panel as TabPanel; if (tabPanel == null) { return(panel.HasLogicalOrientationPublic ? panel.LogicalOrientationPublic : Orientation.Vertical); } TabControl tabControl = tabPanel.FindVisualTreeAncestor <TabControl>(); return(tabControl != null && tabControl.TabStripPlacement != Dock.Left && tabControl.TabStripPlacement != Dock.Right ? Orientation.Horizontal : Orientation.Vertical); }