1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- using ComPDFKit.PDFDocument;
- using System;
- using System.Collections.Generic;
- using System.Collections.ObjectModel;
- using System.ComponentModel;
- using System.Windows;
- using System.Windows.Controls;
- namespace ComPDFKit.Controls.PDFControlUI
- {
- public partial class CPDFOutlineNode
- {
- public CPDFOutlineNode ParentNode = null;
- public CPDFOutline PDFOutline = null;
- public string CurrentNodeName = string.Empty;
- public ObservableCollection<CPDFOutlineNode> ChildrenNodeList
- {
- get;
- set;
- }
- public bool IsExpanded = false;
- public int PageIndex = 0;
- public double PositionX;
- public double PositionY;
- }
- public partial class CPDFOutlineUI : UserControl, INotifyPropertyChanged
- {
- public event PropertyChangedEventHandler PropertyChanged;
- public ObservableCollection<CPDFOutlineNode> OutlineList { get; set; } = new ObservableCollection<CPDFOutlineNode>();
- public event EventHandler<object> OutlineSelectionChanged;
- public CPDFOutlineUI()
- {
- InitializeComponent();
- }
- private void BuildOutlineTree(List<CPDFOutline> outlineList, ItemCollection nodes)
- {
- foreach (var outline in outlineList)
- {
- TreeViewItem new_node = new TreeViewItem();
- new_node.Header = outline.Title;
- ToolTipService.SetToolTip(new_node, new_node.Header);
- nodes.Add(new_node);
- new_node.Tag = outline;
- List<CPDFOutline> childList = outline.ChildList;
- if (childList != null && childList.Count > 0)
- {
- BuildOutlineTree(childList, new_node.Items);
- }
- }
- }
- public void SetOutlineTree(List<CPDFOutline> outlineList)
- {
- this.OutlineList.Clear();
- if (!OutlineTree.HasItems)
- {
- if (outlineList != null && outlineList.Count > 0)
- {
- OutlineTree.BeginInit();
- BuildOutlineTree(outlineList, OutlineTree.Items);
- OutlineTree.EndInit();
- }
- }
- if(outlineList==null || outlineList.Count==0)
- {
- NoResultText.Visibility = Visibility.Visible;
- }
- else
- {
- NoResultText.Visibility= Visibility.Collapsed;
- }
- }
- private void OutlineTree_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
- {
- if (e.NewValue == null)
- {
- return;
- }
- OutlineSelectionChanged?.Invoke(this, e.NewValue);
- }
- }
- }
|