|
@@ -19,6 +19,23 @@ namespace InABox.DynamicGrid
|
|
|
{
|
|
|
private Grid Grid = null!; // Late-initialised
|
|
|
private StackPanel Images = null!; // Late-initialised
|
|
|
+ private bool Enabled = true;
|
|
|
+
|
|
|
+ static DFMultiImageControl()
|
|
|
+ {
|
|
|
+ IsEnabledProperty.OverrideMetadata(
|
|
|
+ typeof(DFMultiImageControl),
|
|
|
+ new UIPropertyMetadata(
|
|
|
+ true,
|
|
|
+ ControlIsEnabledChanged));
|
|
|
+ }
|
|
|
+
|
|
|
+ private static void ControlIsEnabledChanged(DependencyObject obj, DependencyPropertyChangedEventArgs e)
|
|
|
+ {
|
|
|
+ var control = (DFMultiImageControl)obj;
|
|
|
+ control.IsEnabled = true;
|
|
|
+ control.Enabled = (bool)e.NewValue;
|
|
|
+ }
|
|
|
|
|
|
protected override FrameworkElement Create()
|
|
|
{
|
|
@@ -92,6 +109,10 @@ namespace InABox.DynamicGrid
|
|
|
menu.AddItem("View Image", null, image, MultiImageView_Click);
|
|
|
menu.AddItem("Remove Image", null, border, MultiImageRemove_Click);
|
|
|
image.ContextMenu = menu;
|
|
|
+ image.ContextMenuOpening += (sender, args) =>
|
|
|
+ {
|
|
|
+ if (!Enabled) args.Handled = true;
|
|
|
+ };
|
|
|
|
|
|
border.Child = image;
|
|
|
Images.Children.Add(border);
|