コード例 #1
0
        /// <inheritdoc />
        protected override void OnShowDataView(IDataView dataView, EViewPosition viewPosition)
        {
            // Visual root element
            DockContent dataViewDockContent = new DockContent();

            // Let the view create its content
            GridPanel gridPanel = new GridPanel {
                Dock = DockStyle.Fill
            };

            dataView.CreateContents(gridPanel);

            // Place into a dock content
            dataViewDockContent.Controls.Add(gridPanel);

            // Provide a tool bar
            ToolBar dataViewToolBar = new ToolBar();

            dataView.ConfigureToolBar(dataViewToolBar);

            // Only add the tool bar if any item has been added
            if (dataViewToolBar.Items.Count != 0)
            {
                // Add ToolStripContainer to the top of the perspective
                ToolStripContainer toolStripContainer = new ToolStripContainer {
                    Dock = DockStyle.Top
                };
                toolStripContainer.TopToolStripPanel.Controls.Add(dataViewToolBar);

                // Add the tool bar to the controls
                dataViewDockContent.Controls.Add(dataViewToolBar);
            }

            // Set up properties
            dataViewDockContent.TabText = dataView.Name;
            ImageDescriptor imageDescriptor = dataView.Image;

            if (imageDescriptor != null)
            {
                using (Bitmap tmpBitmap = new Bitmap(imageDescriptor.ImageStream)) {
                    IntPtr intPtr = tmpBitmap.GetHicon();
                    using (Icon tmpIcon = Icon.FromHandle(intPtr)) {
                        dataViewDockContent.Icon     = tmpIcon;
                        dataViewDockContent.ShowIcon = true;
                    }
                }
            }

            // Make it visible
            DockState dockState = ConvertToDockState(viewPosition);

            dataViewDockContent.Show(iDockPanel, dockState);
        }