using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Text;
using
System.Windows.Forms;
using
Telerik.WinControls.UI;
namespace
BolleWPF
{
public
partial
class
PdfSplit : Telerik.WinControls.UI.RadForm
{
Telerik.WinControls.UI.RadPdfViewer radPdfViewer1;
LogicLayer.PdfSplitterBatch sb =
new
LogicLayer.PdfSplitterBatch();
private
int
currentPage;
private
int
CurrentPage
{
get
{
return
currentPage;
}
set
{
currentPage = value;
if
(pdfSplitterBatchBindingSource.RaiseListChangedEvents)
{
pdfSplitterBatchBindingSource.RaiseListChangedEvents =
false
;
pdfSplitterBatchBindingSource.Position = currentPage - 1;
pdfSplitterBatchBindingSource.RaiseListChangedEvents =
true
;
}
}
}
public
PdfSplit()
{
InitializeComponent();
pdfSplitterBatchBindingSource.DataSource = sb;
pdfSplitterBatchBindingSource.PositionChanged +=
new
EventHandler(pdfSplitterBatchBindingSource_PositionChanged);
radPdfViewer1 = (Telerik.WinControls.UI.RadPdfViewer) Controls.Find(
"radPdfViewer1"
,
true
)[0];
radPdfViewer1.PdfViewerElement.Scroller.ScrollerUpdated +=
new
EventHandler(Scroller_ScrollerUpdated);
CurrentPage = 0;
}
void
pdfSplitterBatchBindingSource_PositionChanged(
object
sender, EventArgs e)
{
if
(pdfSplitterBatchBindingSource.RaiseListChangedEvents ==
false
|| pdfSplitterBatchBindingSource.Position < 0)
return
;
currentPage = pdfSplitterBatchBindingSource.Position + 1;
pdfSplitterBatchBindingSource.RaiseListChangedEvents =
false
;
radPdfViewer1.PdfViewerElement.GoToPage(currentPage);
pdfSplitterBatchBindingSource.RaiseListChangedEvents =
true
;
}
void
Scroller_ScrollerUpdated(
object
sender, EventArgs e)
{
if
(radPdfViewer1.PdfViewerElement !=
null
&& radPdfViewer1.PdfViewerElement.CurrentPage !=
null
)
CurrentPage = radPdfViewer1.PdfViewerElement.CurrentPage.PageNo;
else
CurrentPage = 0;
}
private
void
radPdfViewer1_DocumentLoaded(
object
sender, EventArgs e)
{
sb.Clear();
for
(
int
i = 0; i < radPdfViewer1.Document.Pages.Count; ++i)
{
sb.Add(
new
LogicLayer.PdfSplitter(i+1));
}
Scroller_ScrollerUpdated(
null
,
null
);
}
}
}