using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace compdfkit_tools.PDFControlUI { public partial class CPDFBookmarkAddUI : UserControl { /// /// 书签添加按钮点击通知 /// public event EventHandler BookmarkAddEvent; /// /// 书签输入展开通知 /// public event EventHandler BookmarkInputExpandEvent; private bool toggleState; private BookmarkChangeData bookmarkData=new BookmarkChangeData(); public CPDFBookmarkAddUI() { InitializeComponent(); } /// /// 书签添加界面切换显示添加输入界面 /// private void Border_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { toggleState = !toggleState; BookmarkInputPanel.Visibility=toggleState?Visibility.Visible:Visibility.Collapsed; if(toggleState) { BookmarkInputExpandEvent?.Invoke(this, EventArgs.Empty); } } /// /// 取消添加 隐藏 添加界面 /// private void ButtonCancel_Click(object sender, MouseButtonEventArgs e) { HideInputUI(true); } /// /// 书签添加按钮点击 触发添加通知 /// private void ButtonAdd_Click(object sender, RoutedEventArgs e) { if(!string.IsNullOrEmpty(BookmarkText.Text) && bookmarkData!=null) { bookmarkData.NewTitle = BookmarkText.Text; BookmarkAddEvent?.Invoke(this, bookmarkData); bookmarkData = null; BookmarkText.Text = string.Empty; HideInputUI(true); } } public void SetBookmarkChangeData(BookmarkChangeData newChangeData) { if(newChangeData!=null) { PageNumText.Text = string.Format("Page {0}", newChangeData.PageIndex + 1); BookmarkText.Text = newChangeData.BookmarkTitle; BookmarkText.Focus(); BookmarkText.SelectAll(); } bookmarkData=newChangeData; } public void HideInputUI(bool isHide) { toggleState = !isHide; BookmarkInputPanel.Visibility = isHide? Visibility.Collapsed:Visibility.Visible; } } internal class BoolEnableConvert : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value == null) { return false; } else { try { if (value is string) { string checkValue=value as string; if(checkValue.Length>0) { return true; } } } catch(Exception ex) { } return false; } } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } }