示例#1
0
        private static void OnImageWidthChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            ImageScaler s    = (ImageScaler)d;
            var         doub = e.NewValue as double?;

            if (!doub.IsRealNumber() || !s.ImageHeight.IsRealNumber())
            {
                return;
            }

            if (!s.scaleHeight || !s.linkedScale)
            {
                return;
            }

            if (e.NewValue == null || e.OldValue == null)
            {
                return;
            }
            s.scaleWidth = false;

            double sizeFactor = (double)e.NewValue / (double)e.OldValue;
            double newHeight  = sizeFactor * s.ImageHeight.Value;

            s.ImageHeight = newHeight;
            s.scaleWidth  = true;
        }
示例#2
0
        private static void OnImageChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            ImageScaler s = (ImageScaler)d;

            if (e.NewValue == null)
            {
                Reset(s);
                return;
            }

            Image help = new Image();

            help.Source = (ImageSource)e.NewValue;
            try
            {
                s.scaleHeight = false;
                s.scaleWidth  = false;

                BitmapSource SourceData = (BitmapSource)help.Source;
                s.ImageWidth          = SourceData.PixelWidth;
                s.ImageHeight         = SourceData.PixelHeight;
                s._originalSize       = new Size(SourceData.PixelWidth, SourceData.PixelHeight);
                s.border1.BorderBrush = s.border2.BorderBrush = Brushes.DarkGray;
                s.noimage.Visibility  = Visibility.Hidden;
            }
            catch
            {
                Reset(s);
            }
            finally
            {
                s.scaleHeight = true;
                s.scaleWidth  = true;
            }
        }
示例#3
0
 private static void Reset(ImageScaler s)
 {
     s.ImageWidth              = null;
     s.ImageHeight             = null;
     s.border1.BorderBrush     =
         s.border2.BorderBrush = new SolidColorBrush(DiverseUtilities.ColorFromString("#FF283266"));
     s.noimage.Visibility      = Visibility.Visible;
 }
示例#4
0
        private static void OnStringListChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            ImageScaler s = (ImageScaler)d;

            if (e.NewValue == null)
            {
                return;
            }

            s.Watermark = ((ImageScalerTranslations)e.NewValue).DoubleClick;
        }
示例#5
0
        private static void LineColorChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            ImageScaler scal = (ImageScaler)d;

            Color col = (Color)e.NewValue;

            col.A = 0;

            LinearGradientBrush br = new LinearGradientBrush((Color)e.NewValue, col, new Point(0, 0), new Point(1, 1));

            scal.trenner.Stroke = br;
        }
示例#6
0
        private static void OnScaleModeChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            ImageScaler s = (ImageScaler)d;

            s.comboBorder.Visibility = (bool)e.NewValue ? Visibility.Visible : Visibility.Hidden;
        }