123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- using System;
- using System.Collections.Generic;
- 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 PDF_Office.CustomControl
- {
- /// <summary>
- /// PaginationControl.xaml 的交互逻辑
- /// </summary>
- public partial class PaginationControl : UserControl
- {
- public PaginationControl()
- {
- InitializeComponent();
- }
- public int CurrentPage
- {
- get { return (int)GetValue(CurrentPageProperty); }
- set { SetValue(CurrentPageProperty, value); }
- }
- // Using a DependencyProperty as the backing store for CurrentPage. This enables animation, styling, binding, etc...
- public static readonly DependencyProperty CurrentPageProperty =
- DependencyProperty.Register("CurrentPage", typeof(int), typeof(PaginationControl), new PropertyMetadata(0));
- public int PageCount
- {
- get { return (int)GetValue(PageCountProperty); }
- set { SetValue(PageCountProperty, value); }
- }
- // Using a DependencyProperty as the backing store for PageCount. This enables animation, styling, binding, etc...
- public static readonly DependencyProperty PageCountProperty =
- DependencyProperty.Register("PageCount", typeof(int), typeof(PaginationControl), new PropertyMetadata(0));
- public string InputString
- {
- get { return (string)GetValue(InputStringProperty); }
- set { SetValue(InputStringProperty, value); }
- }
- // Using a DependencyProperty as the backing store for InputString. This enables animation, styling, binding, etc...
- public static readonly DependencyProperty InputStringProperty =
- DependencyProperty.Register("InputString", typeof(string), typeof(PaginationControl), new PropertyMetadata(""));
- private void CheckInput()
- {
- int page = CurrentPage;
- bool result = int.TryParse(InputString,out page);
- if(result&&(page <= PageCount)&&page>=1)
- {
- CurrentPage = page;
- }
- else
- {
- InputString = CurrentPage.ToString();
- }
- }
- private async void TblIndex_PreviewMouseDown(object sender, MouseButtonEventArgs e)
- {
- if(e.ClickCount==2)
- {
- TblIndex.Visibility = Visibility.Collapsed;
- TxtInput.Visibility = Visibility.Visible;
- await Task.Delay(20);
- TxtInput.SelectAll();
- TxtInput.Focus();
- InputString = CurrentPage.ToString();
- }
- }
- private void TxtInput_LostFocus(object sender, RoutedEventArgs e)
- {
- CheckInput();
- TblIndex.Visibility = Visibility.Visible;
- TxtInput.Visibility = Visibility.Collapsed;
- }
- private void TxtInput_PreviewKeyDown(object sender, KeyEventArgs e)
- {
- if (e.Key == Key.Enter)
- {
- CheckInput();
- }
- }
- }
- }
|