Mini Kabibi Habibi
using System;
using System.Drawing;
using System.IO;
using System.Reflection;
using System.Windows.Forms;
using DevExpress.Utils;
using DevExpress.Utils.Frames;
using DevExpress.Utils.About;
using DevExpress.XtraBars;
using DevExpress.XtraBars.Ribbon;
using DevExpress.XtraBars.Ribbon.ViewInfo;
using DevExpress.XtraBars.Helpers;
using DevExpress.XtraPdfViewer;
namespace PdfViewerDemo {
public partial class MainForm : RibbonForm {
string mainFormText;
public static Image GetImage(string name) {
if (String.IsNullOrEmpty(name))
return null;
return ResourceImageHelper.CreateImageFromResources(name, Assembly.GetExecutingAssembly());
}
public MainForm() {
InitializeComponent();
pdfViewer.CreateRibbon();
foreach (RibbonPage page in ribbonControl.Pages)
if (page.Text == "PDF Viewer") {
RibbonPageGroup skinsPage = new RibbonPageGroup(ribbonGallerySkins.Caption);
SkinHelper.InitSkinGallery(ribbonGallerySkins, true);
skinsPage.ItemLinks.Add(ribbonGallerySkins);
RibbonPageGroup infoPage = new RibbonPageGroup("Info");
BarButtonItem aboutItem = new BarButtonItem(ribbonControl.Manager, "About");
aboutItem.Glyph = GetImage("PdfViewerDemo.Images.Info_16x16.png");
aboutItem.LargeGlyph = GetImage("PdfViewerDemo.Images.Info_32x32.png");
aboutItem.ItemClick += new ItemClickEventHandler(OnAboutItemClicked);
infoPage.ItemLinks.Add(aboutItem);
page.Groups.AddRange(new RibbonPageGroup[] { skinsPage, infoPage });
break;
}
mainFormText = Text;
pdfViewer.DocumentChanged += new PdfDocumentChangedEventHandler(OnPdfViewerDocumentChanged);
using (Stream pdfStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("PdfViewerDemo.Data.Demo.pdf"))
pdfViewer.LoadDocument(pdfStream);
}
void OnRibbonControlPaint(object sender, PaintEventArgs e) {
RibbonViewInfo ribbonViewInfo = ribbonControl.ViewInfo;
if (ribbonViewInfo != null) {
RibbonPanelViewInfo panelViewInfo = ribbonViewInfo.Panel;
if (panelViewInfo != null) {
RibbonPageGroupViewInfoCollection groups = panelViewInfo.Groups;
if (groups != null) {
Rectangle bounds = panelViewInfo.Bounds;
Image image = ApplicationCaption8_1.GetImageLogoEx(LookAndFeel);
int imageHeight = image.Height;
int yOffset = bounds.Height - imageHeight;
if (yOffset >= 0) {
int minX;
if (groups.Count > 0)
minX = groups[groups.Count - 1].Bounds.Right;
else
minX = bounds.X;
int imageWidth = image.Width + 15;
int xOffset = bounds.Width - imageWidth;
if (xOffset >= minX) {
bounds.X = xOffset;
bounds.Y += yOffset / 2;
bounds.Width = imageWidth;
bounds.Height = imageHeight;
e.Graphics.DrawImage(image, bounds.Location);
}
}
}
}
}
}
void OnPdfViewerDocumentChanged(object sender, PdfDocumentChangedEventArgs e) {
string fileName = Path.GetFileName(e.DocumentFilePath);
if (String.IsNullOrEmpty(fileName))
Text = mainFormText;
else
Text = fileName + " - " + mainFormText;
}
void OnAboutItemClicked(object sender, ItemClickEventArgs e) {
AboutForm.Show(typeof(PdfViewer), ProductKind.DXperienceWin, ProductInfoStage.Registered);
}
}
}