//TODO just make this a virtual function in MaterialSet/overriden in MaterialSet public static MaterialSet Interpolate(MaterialSet a, MaterialSet b, double p) { var mixedSet = new AccentedMaterialSet() { P050 = Interpolate(a.P050, b.P050, p), P100 = Interpolate(a.P100, b.P100, p), P200 = Interpolate(a.P200, b.P200, p), P300 = Interpolate(a.P300, b.P300, p), P400 = Interpolate(a.P400, b.P400, p), P500 = Interpolate(a.P500, b.P500, p), P600 = Interpolate(a.P600, b.P600, p), P700 = Interpolate(a.P700, b.P700, p), P800 = Interpolate(a.P800, b.P800, p), P900 = Interpolate(a.P900, b.P900, p), }; if (!(a is AccentedMaterialSet) || !(b is AccentedMaterialSet)) { return(mixedSet); } var aa = (AccentedMaterialSet)a; var ab = (AccentedMaterialSet)b; mixedSet.A100 = Interpolate(aa.A100, ab.A100, p); mixedSet.A200 = Interpolate(aa.A200, ab.A200, p); mixedSet.A400 = Interpolate(aa.A400, ab.A400, p); mixedSet.A700 = Interpolate(aa.A700, ab.A700, p); return(mixedSet); }
private void bubbleClicked(object s, MouseButtonEventArgs e) { var shellSize = ROOT_explosion.RenderSize.Largest() * 2; var bubble = s.RequireType <Ellipse>(); lastSelectedTheme = bubble.Tag.RequireType <AccentedMaterialSet>(); var cursor = Mouse.GetPosition(ROOT_explosion); var explosionBubble = new Ellipse() { Width = 1, Height = 1, Fill = bubble.Fill, HorizontalAlignment = HorizontalAlignment.Left, VerticalAlignment = VerticalAlignment.Top, //RenderTransformOrigin = new Point(.5, .5), Margin = new Thickness(cursor.X, cursor.Y, 0, 0), RenderTransform = new ScaleTransform(1, 1, .5, .5) }; ROOT_explosion.Children.Add(explosionBubble); //bubble.RenderTransform.animate(ScaleTransform.ScaleXProperty, 400, 1, 0, new BackEase // { EasingMode = EasingMode.EaseInOut, Amplitude = .3}, by:1.2); //bubble.RenderTransform.animate(ScaleTransform.ScaleYProperty, 400, 1, 0, new BackEase // { EasingMode = EasingMode.EaseInOut, Amplitude = .3}, by:1.2); explosionBubble.RenderTransform.animate(ScaleTransform.ScaleXProperty, 400, shellSize, 0, new BackEase { EasingMode = EasingMode.EaseInOut, Amplitude = .3 }); explosionBubble.RenderTransform.animate(ScaleTransform.ScaleYProperty, 400, shellSize, 0, new BackEase { EasingMode = EasingMode.EaseInOut, Amplitude = .3 }, OnExplode); explosionBubble.animate(OpacityProperty, 200, 0, 500, new CubicEase { EasingMode = EasingMode.EaseIn }, OnExplodeComplete); }
public void RaiseThemeSelectedEvent(AccentedMaterialSet e) { ThemeSelected?.Invoke(e); }
private void bubbleClicked(object s, MouseButtonEventArgs e) { var shellSize = ROOT_explosion.RenderSize.Largest() * 2; var bubble = s.RequireType<Ellipse>(); lastSelectedTheme = bubble.Tag.RequireType<AccentedMaterialSet>(); var cursor = Mouse.GetPosition(ROOT_explosion); var explosionBubble = new Ellipse() { Width = 1, Height = 1, Fill = bubble.Fill, HorizontalAlignment = HorizontalAlignment.Left, VerticalAlignment = VerticalAlignment.Top, //RenderTransformOrigin = new Point(.5, .5), Margin = new Thickness(cursor.X, cursor.Y, 0, 0), RenderTransform = new ScaleTransform(1, 1, .5, .5) }; ROOT_explosion.Children.Add(explosionBubble); //bubble.RenderTransform.animate(ScaleTransform.ScaleXProperty, 400, 1, 0, new BackEase // { EasingMode = EasingMode.EaseInOut, Amplitude = .3}, by:1.2); //bubble.RenderTransform.animate(ScaleTransform.ScaleYProperty, 400, 1, 0, new BackEase // { EasingMode = EasingMode.EaseInOut, Amplitude = .3}, by:1.2); explosionBubble.RenderTransform.animate(ScaleTransform.ScaleXProperty, 400, shellSize, 0, new BackEase { EasingMode = EasingMode.EaseInOut, Amplitude = .3}); explosionBubble.RenderTransform.animate(ScaleTransform.ScaleYProperty, 400, shellSize , 0, new BackEase { EasingMode = EasingMode.EaseInOut, Amplitude = .3}, OnExplode); explosionBubble.animate(OpacityProperty, 200, 0, 500, new CubicEase { EasingMode = EasingMode.EaseIn}, OnExplodeComplete); }
private void themeSelected(AccentedMaterialSet theme) { ThemePrimitive.SetTheme(this, theme); AppSettings.Instance.Theme = theme.SerializationKey; }