123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253 |
- using compdfkit_tools.PDFControl;
- using compdfkit_tools.PDFControlUI;
- using ComPDFKitViewer.PdfViewer;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Controls.Primitives;
- namespace viewer_ctrl_demo
- {
- /// <summary>
- /// Interaction logic for MainWindow.xaml
- /// </summary>
- public partial class MainWindow : Window
- {
- private CPDFViewer pdfViewer;
- public MainWindow()
- {
- InitializeComponent();
- TitleBarControl.Loaded += TitleBarControl_Loaded;
- LoadDefaultDocument();
- }
- private void LoadDocument()
- {
- pdfViewer.Load();
- PDFGrid.Child = pdfViewer;
- CPDFScalingControl.InitWithPDFViewer(pdfViewer);
- CPDFPageTurningControl.InitWithPDFViewer(pdfViewer);
- CPDFViewModeControl.InitWithPDFViewer(pdfViewer);
- CPDFDrawModeControl.InitWithPDFViewer(pdfViewer);
- UIElement currentBotaTool = GetBotaTool();
- if (currentBotaTool is CPDFSearchControl)
- {
- ((CPDFSearchControl)currentBotaTool).InitWithPDFViewer(pdfViewer);
- }
- if (currentBotaTool is CPDFThumbnailControl)
- {
- ((CPDFThumbnailControl)currentBotaTool).InitWithPDFViewer(pdfViewer);
- ((CPDFThumbnailControl)currentBotaTool).ThumbLoaded = false;
- ((CPDFThumbnailControl)currentBotaTool).LoadThumb();
- }
- if (currentBotaTool is CPDFBookmarkControl)
- {
- ((CPDFBookmarkControl)currentBotaTool).InitWithPDFViewer(pdfViewer);
- ((CPDFBookmarkControl)currentBotaTool).LoadBookmark();
- }
- }
- private void LoadDefaultDocument()
- {
- string defaultFilePath = "..\\..\\..\\..\\developer_guide_windows.pdf";
- pdfViewer = new CPDFViewer();
- pdfViewer.InitDocument(defaultFilePath);
- LoadDocument();
- }
- private void TitleBarControl_Loaded(object sender, RoutedEventArgs e)
- {
- TitleBarControl.OpenFileEvent += TitleBarControl_OpenFileEvent;
- }
- private void TitleBarControl_OpenFileEvent(object sender, string filePath)
- {
- pdfViewer?.CloseDocument();
- pdfViewer = new CPDFViewer();
- pdfViewer.InitDocument(filePath);
- LoadDocument();
- }
- /// <summary>
- /// 搜索工具点击处理
- /// </summary>
- private void SearchToolButton_Click(object sender, RoutedEventArgs e)
- {
- UIElement botaTool = GetBotaTool();
- if (botaTool == null || !(botaTool is CPDFSearchControl))
- {
- CPDFSearchControl searchControl = new CPDFSearchControl();
- if (pdfViewer != null && pdfViewer.Document != null)
- {
- searchControl.InitWithPDFViewer(pdfViewer);
- }
- SetBotaTool(searchControl);
- }
- ExpandTool(SearchToolButton.IsChecked == true);
- ClearToolState(SearchToolButton);
- }
- /// <summary>
- /// 缩略图列表点击处理
- /// </summary>
- private void ThumbToolButton_Click(object sender, RoutedEventArgs e)
- {
- UIElement botaTool = GetBotaTool();
- if (botaTool == null || !(botaTool is CPDFThumbnailControl))
- {
- CPDFThumbnailControl thumbControl = new CPDFThumbnailControl();
- if (pdfViewer != null && pdfViewer.Document != null)
- {
- thumbControl.InitWithPDFViewer(pdfViewer);
- thumbControl.LoadThumb();
- }
- SetBotaTool(thumbControl);
- }
- ExpandTool(ThumbToolButton.IsChecked == true);
- ClearToolState(ThumbToolButton);
- }
- /// <summary>
- /// 书签列表点击处理
- /// </summary>
- private void BookmarkToolButtonn_Click(object sender, RoutedEventArgs e)
- {
- UIElement botaTool = GetBotaTool();
- if (botaTool == null || !(botaTool is CPDFBookmarkControl))
- {
- CPDFBookmarkControl bookmarkControl = new CPDFBookmarkControl();
- if (pdfViewer != null && pdfViewer.Document != null)
- {
- bookmarkControl.InitWithPDFViewer(pdfViewer);
- bookmarkControl.LoadBookmark();
- }
- SetBotaTool(bookmarkControl);
- }
- ExpandTool(BookmarkToolButton.IsChecked == true);
- ClearToolState(BookmarkToolButton);
- }
- /// <summary>
- /// 大纲列表处理
- /// </summary>
- private void OutlineToolButton_Click(object sender, RoutedEventArgs e)
- {
- UIElement botaTool = GetBotaTool();
- if (botaTool == null||!(botaTool is CPDFOutlineControl))
- {
- CPDFOutlineControl outlineControl = new CPDFOutlineControl();
- if (pdfViewer != null && pdfViewer.Document != null)
- {
- outlineControl.InitWithPDFViewer(pdfViewer);
- }
- SetBotaTool(outlineControl);
- }
- ExpandTool(OutlineToolButton.IsChecked == true);
- ClearToolState(OutlineToolButton);
- }
- /// <summary>
- /// 设置Bota工具内容
- /// </summary>
- /// <param name="newChild"></param>
- private void SetBotaTool(UIElement newChild)
- {
- BotaToolContainer.Child = newChild;
- }
- /// <summary>
- /// 获取Bota工具
- /// </summary>
- /// <returns></returns>
- private UIElement GetBotaTool()
- {
- return BotaToolContainer.Child;
- }
- /// <summary>
- /// 展开Bota工具
- /// </summary>
- /// <param name="isExpand"></param>
- private void ExpandTool(bool isExpand)
- {
- if(isExpand)
- {
- BodyGrid.ColumnDefinitions[1].Width = new GridLength(300);
- }
- else
- {
- BodyGrid.ColumnDefinitions[1].Width = new GridLength(0);
- }
- BotaToolContainer.Visibility = isExpand ? Visibility.Visible : Visibility.Collapsed;
- Splitter.Visibility=isExpand ? Visibility.Visible : Visibility.Collapsed;
- }
- /// <summary>
- /// 清除左边工具栏状态
- /// </summary>
- private void ClearToolState(UIElement ignoreTool)
- {
- foreach (UIElement child in BotaSideTool.Children)
- {
- if (child != ignoreTool && child is ToggleButton buttonTool)
- {
- buttonTool.IsChecked = false;
- }
- }
- }
- private void BotaButton_Click(object sender, RoutedEventArgs e)
- {
- UIElement botaTool = GetBotaTool();
- if (botaTool == null)
- {
- CPDFBOTABarControl pdfBOTABarControl = new CPDFBOTABarControl(BOTATools.Outline|BOTATools.Thumbnail|BOTATools.Search);
- if (pdfViewer != null && pdfViewer.Document != null)
- {
- pdfBOTABarControl.InitWithPDFViewer(pdfViewer);
- }
- SetBotaTool(pdfBOTABarControl);
- }
- ExpandTool(BotaButton.IsChecked == true);
- ClearToolState(BotaButton);
- }
- private void ShowPDFInfoDialog()
- {
- CPDFInfoControl pdfInfoControl = new CPDFInfoControl();
- pdfInfoControl.InitWithPDFViewer(pdfViewer);
- Window dialog = new Window
- {
- Title = "PDF Info", // 设置弹出窗口的标题
- Content = pdfInfoControl, // 将UserControl添加到弹出窗口中
- Width = 600, // 设置弹出窗口的宽度
- Height = 300, // 设置弹出窗口的高度
- ResizeMode = ResizeMode.NoResize, // 禁止用户调整弹出窗口的大小
- WindowStartupLocation = WindowStartupLocation.CenterScreen, // 将弹出窗口显示在屏幕中央
- WindowStyle = WindowStyle.ToolWindow, // 设置弹出窗口的样式
- Owner = Application.Current.MainWindow // 将主窗口设置为弹出窗口的拥有者
- };
- dialog.ShowDialog(); // 显示弹出窗口
- }
- private void PDFInfoButton_Click(object sender, RoutedEventArgs e)
- {
- ShowPDFInfoDialog();
- }
- }
- }
|