ArcObjects Library Reference  

FrmGxStyleView

About the Custom Root Object (Style Gallery) Sample

[C#]

FrmGxStyleView.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ESRI.ArcGIS.Catalog;
using ESRI.ArcGIS.esriSystem;

namespace CustomRootObject_CS
{
    public partial class FrmGxStyleView : Form
    {
        private clsGxStyleView g_pGxView;
        private Bitmap bmpPreview = null;

        public FrmGxStyleView()
        {
            InitializeComponent();
            picStylePreview.Paint += new PaintEventHandler(picStylePreview_Paint);
        }

        public void RefreshView()
        {
            GeneratePreview();
            if (picStylePreview != null)
                picStylePreview.Refresh();
        }

        public clsGxStyleView GxStyleView
        {
            get { return g_pGxView; }
            set { g_pGxView = value; }
        }

        private void GeneratePreview()
        {
            if ((picStylePreview == null) || (g_pGxView == null))
                return;

            tagRECT r = new tagRECT();
            r.bottom = picStylePreview.ClientSize.Height;
            r.top = 0;
            r.right = picStylePreview.ClientSize.Width;
            r.left = 0;

            bmpPreview = new Bitmap(r.right, r.bottom);
            System.Drawing.Graphics GrpObj = Graphics.FromImage(bmpPreview);
            try
            {
                g_pGxView.PreviewItem((Int64)GrpObj.GetHdc(), r);
                GrpObj.ReleaseHdc();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            finally
            {
                GrpObj.Dispose();
            }
            picStylePreview.Image = bmpPreview;
        }

        private void picStylePreview_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
        {
            if (bmpPreview == null)
                GeneratePreview();
        }
        private void picStylePreview_SizeChanged(object sender, EventArgs e)
        {
            GeneratePreview();
        }
    }
}

[Visual Basic .NET]

FrmGxStyleView.vb

Option Explicit On

Imports System.Drawing
Imports ESRI.ArcGIS.Display

Public Class FrmGxStyleView
    Private g_pGxView As clsGxStyleView
    Private bmpPreview As Bitmap

    Public Sub RefreshView()
        GeneratePreview()
        If (picStylePreview Is Nothing) Then picStylePreview.Refresh()
    End Sub
    Public Property GxStyleView() As clsGxStyleView
        Get
            Return g_pGxView
        End Get
        Set(ByVal value As clsGxStyleView)
            g_pGxView = value
        End Set
    End Property

    Private Sub GeneratePreview()
        Dim r As New tagRECT
        Try
            If ((picStylePreview Is Nothing) Or (g_pGxView Is Nothing)) Then Exit Sub
            With r
                .bottom = picStylePreview.ClientSize.Height
                .top = 0
                .right = picStylePreview.ClientSize.Width
                .left = 0
            End With

            bmpPreview = New Bitmap(r.right, r.bottom)
            Dim GrpObj As System.Drawing.Graphics = Graphics.FromImage(bmpPreview)
            Try
                g_pGxView.PreviewItem(GrpObj.GetHdc(), r)
                GrpObj.ReleaseHdc()
            Catch ex As Exception
                MsgBox(ex.ToString())
            Finally
                GrpObj.Dispose()
            End Try
            ' draw image
            picStylePreview.Image = bmpPreview
        Catch ex As Exception
            MsgBox(ex.ToString())
        End Try

    End Sub
    Private Sub picStylePreview_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles picStylePreview.Paint
        If (bmpPreview Is Nothing) Then GeneratePreview()
    End Sub

    Private Sub picStylePreview_SizeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles picStylePreview.SizeChanged
        GeneratePreview()
    End Sub
End Class