Quellcode durchsuchen

compdfkit(win) - lock homepage

liuaoran vor 1 Jahr
Ursprung
Commit
30004c69f0

+ 11 - 10
Demo/Examples/Compdfkit_Tools/Common/BaseControl/HomePageButton.cs

@@ -21,14 +21,6 @@ namespace Compdfkit_Tools.Common
             set { SetValue(IsToggledProperty, value); }
         }
 
-        public static readonly DependencyProperty CanChangeProperty =
-            DependencyProperty.Register("CanChange", typeof(bool), typeof(HomePageButton), new PropertyMetadata(true));
-        public bool CanChange
-        {
-            get { return (bool)GetValue(CanChangeProperty); }
-            set { SetValue(CanChangeProperty, value); }
-        }
-
         public static readonly RoutedEvent ToggledEvent = 
             EventManager.RegisterRoutedEvent("Toggled", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(HomePageButton));
         public event RoutedEventHandler Toggled
@@ -42,9 +34,18 @@ namespace Compdfkit_Tools.Common
             Click += HomePageButton_Click; ;
         }
 
+        public class QueryLockEventArgs : EventArgs
+        {
+            public bool CanLock { get; set; }
+        }
+
+        public delegate bool QueryLockHandler(object sender, QueryLockEventArgs e);
+
+        public event QueryLockHandler QueryLock;
+
         private void HomePageButton_Click(object sender, RoutedEventArgs e)
         {
-            if (CanChange)
+            if (QueryLock?.Invoke(this, new QueryLockEventArgs()) == false)
             {
                 IsToggled = !IsToggled;
                 RaiseToggledEvent();
@@ -53,7 +54,7 @@ namespace Compdfkit_Tools.Common
 
         private void RaiseToggledEvent()
         {
-            RoutedEventArgs newEventArgs = new RoutedEventArgs(HomePageButton.ToggledEvent);
+            RoutedEventArgs newEventArgs = new(ToggledEvent);
             RaiseEvent(newEventArgs);
         }
     }

+ 2 - 5
Demo/Examples/Compdfkit_Tools/Common/HomePage/HomePageControl.xaml.cs

@@ -93,9 +93,7 @@ namespace Compdfkit_Tools.PDFControl
                     break;
             }
         }
-
-
-
+         
         private void UserControl_Loaded(object sender, RoutedEventArgs e)
         {
             CreatFeatureIcon();
@@ -301,8 +299,7 @@ namespace Compdfkit_Tools.PDFControl
                 contentEditorCanvas.Children.Add(path1);
                 contentEditorCanvas.Children.Add(path2);
             }
-
-
+             
         }
 
         private void UserControl_Unloaded(object sender, RoutedEventArgs e)

+ 1 - 1
Demo/Examples/PDFViewer/MainWindow.xaml

@@ -283,7 +283,7 @@
                 <dragablz:TabablzControl.HeaderPrefixContent>
                     <Grid Margin="10,0,0,0">
                         <StackPanel Orientation="Horizontal">
-                            <cpdfcommon:HomePageButton Style="{StaticResource HomePageButtonStyle}" x:Name="HomePageButton" Width="160" CanChange="True" IsToggled="False" Toggled="HomePageButton_Toggled">
+                            <cpdfcommon:HomePageButton Style="{StaticResource HomePageButtonStyle}" x:Name="HomePageButton" Width="160" IsToggled="False" Toggled="HomePageButton_Toggled" QueryLock="HomePageButton_QueryLock">
                                 <Grid>
                                     <StackPanel Orientation="Horizontal">
                                         <Viewbox Width="20" Height="20" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">

+ 28 - 9
Demo/Examples/PDFViewer/MainWindow.xaml.cs

@@ -27,7 +27,7 @@ namespace PDFViewer
     /// <summary>
     /// Interaction logic for MainWindow.xaml
     /// </summary>
-    public partial class MainWindow : Window
+    public partial class MainWindow : Window, INotifyPropertyChanged
     {
         #region Property
         private PDFViewControl passwordViewer;
@@ -108,14 +108,6 @@ namespace PDFViewer
             {
                 HomePageButton.IsToggled = false;
             }
-            if (TabControl.Items.Count > 0)
-            {
-                HomePageButton.CanChange = true;
-            }
-            else
-            {
-                HomePageButton.CanChange = false;
-            }
         }
 
         private void OpenFileEventHandler(object sender, OpenFileEventArgs args)
@@ -577,5 +569,32 @@ namespace PDFViewer
                 TabControl.SelectedIndex = 0;
             }
         }
+
+        public event PropertyChangedEventHandler PropertyChanged;
+        protected virtual void OnPropertyChanged(string propertyName = null)
+        {
+            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
+        }
+        protected bool UpdateProper<T>(ref T properValue,
+    T newValue,
+    [CallerMemberName] string properName = "")
+        {
+            if (object.Equals(properValue, newValue))
+                return false;
+
+            properValue = newValue;
+            OnPropertyChanged(properName);
+            return true;
+        }
+
+        private bool HomePageButton_QueryLock(object sender, HomePageButton.QueryLockEventArgs e)
+        {
+            return TabControl.Items.Count <= 0;
+        }
+
+        private void TabControl_SelectionChanged_1(object sender, SelectionChangedEventArgs e)
+        {
+
+        }
     }
 }