Пример #1
0
        static void RaiseForegroundColorChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            Image image = (Image)d;

            DepPropertyHelper.UnsubscribeFromChanged(image, Image.SourceProperty, RaiseImageSourceChanged);
            DepPropertyHelper.SubscribeToChanged(image, Image.SourceProperty, RaiseImageSourceChanged);
            RaiseImageSourceChanged(image, EventArgs.Empty);
        }
Пример #2
0
        static void RaiseImageSourceChanged(object sender, EventArgs e)
        {
            Image image = (Image)sender;

            DepPropertyHelper.UnsubscribeFromChanged(image, Image.SourceProperty, RaiseImageSourceChanged);
            System.Drawing.Image drawingImage = ConvertBack(image.Source as BitmapSource);
            if (drawingImage != null)
            {
                Color color = GetForegroundColor(image);
                if (color != Colors.Transparent)
                {
                    //drawingImage = ColorMatrixHelper.GrayscaleImage(drawingImage);
                    drawingImage = ColorMatrixHelper.InvertImage(drawingImage);
                    drawingImage = ColorMatrixHelper.ColorizeImage(drawingImage, ConvertColorBack(color));
                    image.Source = Convert(drawingImage, null);
                }
            }
            DepPropertyHelper.SubscribeToChanged(image, Image.SourceProperty, RaiseImageSourceChanged);
        }