private void imageProperties_ImagePropertyChanged(object source, ImagePropertyEvent evt)
 {
     if (ImgElement != null)
     {
         switch (evt.PropertyType)
         {
             case ImagePropertyType.Source:
             case ImagePropertyType.InlineSize:
             case ImagePropertyType.Decorators:
                 UpdateImageSource(evt.ImageProperties, evt.InvocationSource);
                 break;
             default:
                 Debug.Fail("Unsupported image property type update: " + evt.PropertyType);
                 break;
         }
     }
 }
 private void tabPage_ImagePropertyChanged(object source, ImagePropertyEvent evt)
 {
     OnImagePropertyChanged(evt);
 }
        protected virtual void OnImagePropertyChanged(ImagePropertyEvent evt)
        {
            using (IUndoUnit undo = _editorContext.CreateUndoUnit())
            {
                if (ImagePropertyChanged != null)
                    ImagePropertyChanged(this, evt);

                undo.Commit();
            }

            switch (evt.PropertyType)
            {
                case ImagePropertyType.Decorators:
                    {
                        RefreshSizeChunkCommands();
                        RefreshStylesChunkCommands();
                        RefreshPropertiesChunkCommands();
                        break;
                    }
                case ImagePropertyType.InlineSize:
                    RefreshSizeChunkCommands();
                    break;
                case ImagePropertyType.Source:
                    RefreshPropertiesChunkCommands();
                    break;
                default:
                    RefreshCommands();
                    break;
            }

            // If this is a reset, then handle alignment/margins
            if (evt.InvocationSource == ImageDecoratorInvocationSource.Reset)
            {
                // Reset margins and alignments
                bool isImageSelected = ImagePropertiesInfo != null;
                bool isEditableEmbeddedImage = isImageSelected && ImagePropertiesInfo.IsEditableEmbeddedImage();

                ResetAlignmentChunkCommands(isImageSelected, isEditableEmbeddedImage);
                ResetMarginsChunkCommands(isImageSelected, isEditableEmbeddedImage);
            }
        }
        protected virtual void OnImagePropertyChanged(ImagePropertyEvent evt)
        {
            if(ImagePropertyChanged != null)
            {
                ImagePropertyChanged(this, evt);
            }

            //notify the tabs that the image properties have changed so that they can update themselves.
            foreach(ImageEditingTabPageControl tabPage in TabPages)
            {
                tabPage.HandleImagePropertyChangedEvent(evt);
            }
        }