private CustomTaskPane GetTaskPane(TaskPaneSettings settings) { var result = default(CustomTaskPane); result = ctpFactory.CreateCTP( cTPAxID: progId, cTPTitle: settings.Title, cTPParentWindow: taskPaneWindow) as CustomTaskPane; try { result.Visible = false; result.DockPosition = settings.GetDockPosition(); result.DockPositionRestrict = settings.GetDockRestriction(); if (result.DockPosition != MsoCTPDockPosition.msoCTPDockPositionLeft && result.DockPosition != MsoCTPDockPosition.msoCTPDockPositionRight) { result.Height = settings.Height; } if (result.DockPosition != MsoCTPDockPosition.msoCTPDockPositionBottom && result.DockPosition != MsoCTPDockPosition.msoCTPDockPositionTop) { result.Width = settings.Width; } result.DockPositionStateChangeEvent += (t) => BaseProvider.OnTaskPaneChanged(t); result.VisibleStateChangeEvent += (t) => BaseProvider.OnTaskPaneChanged(t); } catch { } return(result); }
public static MsoCTPDockPositionRestrict GetDockRestriction(this TaskPaneSettings settings) { switch (settings.DockRestriction) { case DockRestriction.None: return(MsoCTPDockPositionRestrict.msoCTPDockPositionRestrictNone); case DockRestriction.NoHorizontal: return(MsoCTPDockPositionRestrict.msoCTPDockPositionRestrictNoHorizontal); case DockRestriction.NoVertical: return(MsoCTPDockPositionRestrict.msoCTPDockPositionRestrictNoVertical); default: return(MsoCTPDockPositionRestrict.msoCTPDockPositionRestrictNoChange); } }
public CustomTaskPane Get(TaskPaneSettings settings) { var result = GetTaskPane(settings); var hostRegion = GetHostRegion(result); var hostView = GetHostView(hostRegion); var viewUri = settings.GetUriView(windowKey); hostView.Initialize( regionName: settings.RegionName, regionContext: settings.RegionContext, viewUri: viewUri, scrollBarHorizontal: settings.ScrollBarHorizontal, scrollBarVertical: settings.ScrollBarVertical); return(result); }
public static MsoCTPDockPosition GetDockPosition(this TaskPaneSettings settings) { switch (settings.DockPosition) { case DockPosition.Right: return(MsoCTPDockPosition.msoCTPDockPositionRight); case DockPosition.Left: return(MsoCTPDockPosition.msoCTPDockPositionLeft); case DockPosition.Top: return(MsoCTPDockPosition.msoCTPDockPositionTop); case DockPosition.Bottom: return(MsoCTPDockPosition.msoCTPDockPositionBottom); default: return(MsoCTPDockPosition.msoCTPDockPositionFloating); } }
public static Uri GetUriView(this TaskPaneSettings settings, int windowKey) { var parameter = new NavigationParameters(); parameter.Add( key: ProviderConstants.WindowKey, value: windowKey); if (!string.IsNullOrWhiteSpace(settings.NavigationValue)) { parameter.Add( key: ProviderConstants.NavigationKey, value: settings.NavigationValue); } var uriString = settings.View.Name + parameter; var result = new Uri( uriString: uriString, uriKind: UriKind.Relative); return(result); }