Beispiel #1
0
        public static BoxShadows ToBoxShadows(this ShadowDepth shadowDepth)
        {
            BoxShadows boxShadows;

            switch (shadowDepth)
            {
            case ShadowDepth.Depth0:
                boxShadows = new BoxShadows(new BoxShadow());
                break;

            case ShadowDepth.Depth1:
                boxShadows = new BoxShadows(new BoxShadow
                {
                    Blur = 5, OffsetX = 0, OffsetY = 1, Color = Color.FromArgb(130, 0, 0, 0)
                });
                break;

            case ShadowDepth.Depth2:
                boxShadows = new BoxShadows(new BoxShadow
                {
                    Blur = 20, OffsetX = 0, OffsetY = 1, Color = Color.FromArgb(110, 0, 0, 0)
                });
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            return(boxShadows);
        }
Beispiel #2
0
        /// <summary>
        /// Make the shadow of a card darken when hoover
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Card_MouseEnter(object sender, MouseEventArgs e)
        {
            var card = sender as Card;

            this.defaultShadowDepth = ShadowAssist.GetShadowDepth(card);

            ShadowAssist.SetShadowDepth(card, DarkShadowDepth);
        }
Beispiel #3
0
        private static void UpdateShadowDepth(UIElement element, ShadowDepth shadowDepth, bool loaded = false)
        {
            var adornerLayer = AdornerLayer.GetAdornerLayer(element);

            if (adornerLayer == null)
            {
                if (!loaded)
                {
                    element.Dispatcher.InvokeAsync(() => UpdateShadowDepth(element, shadowDepth, true), DispatcherPriority.Loaded);
                }

                return;
            }

            var topMostAdornerLayer = adornerLayer;
            //while (topMostAdornerLayer != null)
            //{
            //    topMostAdornerLayer = AdornerLayer.GetAdornerLayer(topMostAdornerLayer);
            //}

            var shadowAdorner = GetShadowAdorner(element);

            if (shadowDepth == ShadowDepth.Depth0)
            {
                if (shadowAdorner != null)
                {
                    SetShadowAdorner(element, null);
                    topMostAdornerLayer.Remove(shadowAdorner);
                }
            }
            else
            {
                if (shadowAdorner == null)
                {
                    shadowAdorner = new ShadowAdorner(element);
                    MaterialDesignThemes.Wpf.ShadowAssist.SetShadowDepth(shadowAdorner.Shadow, shadowDepth);
                    topMostAdornerLayer.Add(shadowAdorner);
                    SetShadowAdorner(element, shadowAdorner);
                }
                else
                {
                    MaterialDesignThemes.Wpf.ShadowAssist.SetShadowDepth(shadowAdorner.Shadow, shadowDepth);
                }
            }
        }
 public static BoxShadows ToBoxShadows(this ShadowDepth shadowDepth, Color?overridedColor = null)
 {
     return(shadowDepth switch {
         ShadowDepth.Depth0 => new BoxShadows(new BoxShadow()),
         ShadowDepth.Depth1 => new BoxShadows(new BoxShadow {
             Blur = 5, OffsetX = 1, OffsetY = 1, Color = overridedColor ?? MaterialShadowColor
         }),
         ShadowDepth.Depth2 => new BoxShadows(new BoxShadow {
             Blur = 8, OffsetX = 1.5, OffsetY = 1.5, Color = overridedColor ?? MaterialShadowColor
         }),
         ShadowDepth.Depth3 => new BoxShadows(new BoxShadow {
             Blur = 14, OffsetX = 4.5, OffsetY = 4.5, Color = overridedColor ?? MaterialShadowColor
         }),
         ShadowDepth.Depth4 => new BoxShadows(new BoxShadow {
             Blur = 25, OffsetX = 8, OffsetY = 8, Color = overridedColor ?? MaterialShadowColor
         }),
         ShadowDepth.Depth5 => new BoxShadows(new BoxShadow {
             Blur = 35, OffsetX = 13, OffsetY = 13, Color = overridedColor ?? MaterialShadowColor
         }),
         _ => throw new ArgumentOutOfRangeException()
     });
Beispiel #5
0
 public static void SetHeaderShadowDepth(DependencyObject element, ShadowDepth value)
 => element.SetValue(HeaderShadowDepthProperty, value);
Beispiel #6
0
 public static void SetShadowDepth(DependencyObject element, ShadowDepth value)
 {
     element.SetValue(ShadowDepthProperty, value);
 }
Beispiel #7
0
 public static DropShadowEffect GetDropShadow(ShadowDepth depth)
 {
     return(ShadowsDictionary[depth]);
 }
Beispiel #8
0
 public static DropShadowEffect Convert(ShadowDepth shadowDepth)
 {
     return(ShadowInfo.GetDropShadow(shadowDepth));
 }
 public static void SetShadowDepth(DependencyObject element, ShadowDepth value)
 {
     element.SetValue(ShadowDepthProperty, value);
 }
Beispiel #10
0
 public static void SetShadowDepth(DependencyObject obj, ShadowDepth value)
 {
     obj.SetValue(ShadowDepthProperty, value);
 }
 public static DropShadowEffect?GetDropShadow(ShadowDepth depth)
 => ShadowsDictionary[depth];
 public static void SetAnimateToShadow(DependencyObject obj, ShadowDepth value)
 {
     obj.SetValue(AnimateToShadowProperty, value);
 }
Beispiel #13
0
 public static void SetShadowDepth(AvaloniaObject element, ShadowDepth value) =>
 element.SetValue(ShadowDepthProperty, value);