void imageEffectsGalleryCommand_ExecuteWithArgs(object sender, ExecuteEventHandlerArgs args) { ImageEffectsGalleryCommand galleryCommand = (ImageEffectsGalleryCommand)sender; int newSelectedIndex = args.GetInt(galleryCommand.CommandId.ToString()); string newDecoratorId = galleryCommand.Items[newSelectedIndex].Cookie; ImageDecorator newDecorator = _imageEditingContext.DecoratorsManager.GetImageDecorator(newDecoratorId); Debug.Assert(newDecorator != null); if (galleryCommand.SelectedItem != newDecorator.Id) { ImagePropertiesInfo.ImageDecorators.AddDecorator(newDecorator); if (!ImagePropertiesInfo.IsEditableEmbeddedImage()) { // If this is a web image, calling ApplyImageDecorations will keep properties up to date but won't // actually do any decorating, so do it manually. Only borders should be manually decorated. SimpleImageDecoratorContext context = new SimpleImageDecoratorContext(ImagePropertiesInfo); newDecorator.Decorate(context); } ApplyImageDecorations(); } }