Mini Kabibi Habibi
Imports Microsoft.VisualBasic
Imports System
Imports System.Drawing
Imports System.IO
Imports System.Reflection
Imports System.Windows.Forms
Imports DevExpress.Utils
Imports DevExpress.Utils.Frames
Imports DevExpress.Utils.About
Imports DevExpress.XtraBars
Imports DevExpress.XtraBars.Ribbon
Imports DevExpress.XtraBars.Ribbon.ViewInfo
Imports DevExpress.XtraBars.Helpers
Imports DevExpress.XtraPdfViewer
Namespace PdfViewerDemo
Partial Public Class MainForm
Inherits RibbonForm
Private mainFormText As String
Public Shared Function GetImage(ByVal name As String) As Image
If String.IsNullOrEmpty(name) Then
Return Nothing
End If
Return ResourceImageHelper.CreateImageFromResources(name, System.Reflection.Assembly.GetExecutingAssembly())
End Function
Public Sub New()
InitializeComponent()
pdfViewer.CreateRibbon()
For Each page As RibbonPage In ribbonControl.Pages
If page.Text = "PDF Viewer" Then
Dim skinsPage As New RibbonPageGroup(ribbonGallerySkins.Caption)
SkinHelper.InitSkinGallery(ribbonGallerySkins, True)
skinsPage.ItemLinks.Add(ribbonGallerySkins)
Dim infoPage As New RibbonPageGroup("Info")
Dim aboutItem As New BarButtonItem(ribbonControl.Manager, "About")
aboutItem.Glyph = GetImage("PdfViewerDemo.Images.Info_16x16.png")
aboutItem.LargeGlyph = GetImage("PdfViewerDemo.Images.Info_32x32.png")
AddHandler aboutItem.ItemClick, AddressOf OnAboutItemClicked
infoPage.ItemLinks.Add(aboutItem)
page.Groups.AddRange(New RibbonPageGroup() { skinsPage, infoPage })
Exit For
End If
Next page
mainFormText = Text
AddHandler pdfViewer.DocumentChanged, AddressOf OnPdfViewerDocumentChanged
Using pdfStream As Stream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("PdfViewerDemo.Data.Demo.pdf")
pdfViewer.LoadDocument(pdfStream)
End Using
End Sub
Private Sub OnRibbonControlPaint(ByVal sender As Object, ByVal e As PaintEventArgs) Handles ribbonControl.Paint
Dim ribbonViewInfo As RibbonViewInfo = ribbonControl.ViewInfo
If ribbonViewInfo IsNot Nothing Then
Dim panelViewInfo As RibbonPanelViewInfo = ribbonViewInfo.Panel
If panelViewInfo IsNot Nothing Then
Dim groups As RibbonPageGroupViewInfoCollection = panelViewInfo.Groups
If groups IsNot Nothing Then
Dim bounds As Rectangle = panelViewInfo.Bounds
Dim image As Image = ApplicationCaption8_1.GetImageLogoEx(LookAndFeel)
Dim imageHeight As Integer = image.Height
Dim yOffset As Integer = bounds.Height - imageHeight
If yOffset >= 0 Then
Dim minX As Integer
If groups.Count > 0 Then
minX = groups(groups.Count - 1).Bounds.Right
Else
minX = bounds.X
End If
Dim imageWidth As Integer = image.Width + 15
Dim xOffset As Integer = bounds.Width - imageWidth
If xOffset >= minX Then
bounds.X = xOffset
bounds.Y += yOffset \ 2
bounds.Width = imageWidth
bounds.Height = imageHeight
e.Graphics.DrawImage(image, bounds.Location)
End If
End If
End If
End If
End If
End Sub
Private Sub OnPdfViewerDocumentChanged(ByVal sender As Object, ByVal e As PdfDocumentChangedEventArgs)
Dim fileName As String = Path.GetFileName(e.DocumentFilePath)
If String.IsNullOrEmpty(fileName) Then
Text = mainFormText
Else
Text = fileName & " - " & mainFormText
End If
End Sub
Private Sub OnAboutItemClicked(ByVal sender As Object, ByVal e As ItemClickEventArgs)
AboutForm.Show(GetType(PdfViewer), ProductKind.DXperienceWin, ProductInfoStage.Registered)
End Sub
End Class
End Namespace