Explorar el Código

Added IsEanbled and Visibility Bindings to PanelActions

frogsoftware hace 1 año
padre
commit
4ad68c659b
Se han modificado 2 ficheros con 16 adiciones y 17 borrados
  1. 5 10
      prs.desktop/MainWindow.xaml.cs
  2. 11 7
      prs.desktop/SecondaryWindow.xaml.cs

+ 5 - 10
prs.desktop/MainWindow.xaml.cs

@@ -3172,23 +3172,18 @@ public partial class MainWindow : IPanelHostControl
             var button = new Fluent.Button
             {
                 Header = action.Caption,
-                LargeIcon = action.Image.AsBitmapImage(),
+                LargeIcon = action.Image?.AsBitmapImage(),
                 MinWidth = 60
             };
             button.Bind<PanelAction, String>(Fluent.Button.HeaderProperty, x=>x.Caption, null);
             button.Bind<PanelAction, Bitmap>(Fluent.Button.LargeIconProperty, x => x.Image, new BitmapToBitmapImageConverter());
             button.Bind<PanelAction, ContextMenu?>(Fluent.Button.ContextMenuProperty, x=>x.Menu);
+            button.Bind<PanelAction, bool>(Fluent.Button.IsEnabledProperty, x => x.IsEnabled);
+            button.Bind<PanelAction, Visibility>(Fluent.Button.VisibilityProperty, x => x.Visibility);
             button.DataContext = action;
-            // if (action.Menu is not null)
-            // {
-            //     button.ContextMenu = action.Menu;
-            // }
-            button.Click += (o, e) =>
-            {
-                action.Execute();
-            };
-            CurrentModules.Add(button);
+            button.Click += (o, e) => action.Execute();
             Actions.Items.Add(button);
+            CurrentModules.Add(button);
         }
     }
 

+ 11 - 7
prs.desktop/SecondaryWindow.xaml.cs

@@ -120,19 +120,23 @@ public partial class SecondaryWindow : RibbonWindow, IPanelHostControl
     }
 
     #endregion
-
+    
+    
     public void CreatePanelAction(PanelAction action)
     {
-        var button = new Button
+        var button = new Fluent.Button
         {
             Header = action.Caption,
-            LargeIcon = action.Image.AsBitmapImage()
+            LargeIcon = action.Image?.AsBitmapImage(),
+            MinWidth = 60
         };
+        button.Bind<PanelAction, String>(Fluent.Button.HeaderProperty, x=>x.Caption, null);
+        button.Bind<PanelAction, Bitmap>(Fluent.Button.LargeIconProperty, x => x.Image, new BitmapToBitmapImageConverter());
+        button.Bind<PanelAction, ContextMenu?>(Fluent.Button.ContextMenuProperty, x=>x.Menu);
+        button.Bind<PanelAction, bool>(Fluent.Button.IsEnabledProperty, x => x.IsEnabled);
+        button.Bind<PanelAction, Visibility>(Fluent.Button.VisibilityProperty, x => x.Visibility);
+        button.DataContext = action;
         button.Click += (o, e) => action.Execute();
-        if (action.Menu is not null)
-        {
-            button.ContextMenu = action.Menu;
-        }
         Actions.Items.Add(button);
         CurrentModules.Add(button);
         ActionsSeparator.Visibility = Visibility.Visible;