コード例 #1
0
        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);
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
            }
        }
コード例 #5
0
        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);
        }