private void CreateTopCircleButtonShadow() { CompositionRoundedRectangleGeometry circleShaowGeometry = compositor.CreateRoundedRectangleGeometry(); circleShaowGeometry.Size = new Vector2(50, 50); circleShaowGeometry.CornerRadius = new Vector2(25, 25); CompositionSpriteShape compositionSpriteShapeShadow = compositor.CreateSpriteShape(circleShaowGeometry); CompositionRadialGradientBrush compositionLinearGradientShadowBrush = compositor.CreateRadialGradientBrush(); compositionLinearGradientShadowBrush.ColorStops.Insert(0, compositor.CreateColorGradientStop(0.5f, Color.FromArgb(255, 86, 57, 14))); compositionLinearGradientShadowBrush.ColorStops.Insert(1, compositor.CreateColorGradientStop(1f, Color.FromArgb(255, 230, 160, 53))); compositionLinearGradientShadowBrush.Offset = new Vector2(0, 4); compositionSpriteShapeShadow.FillBrush = compositionLinearGradientShadowBrush; shapeVisualShadow = compositor.CreateShapeVisual(); shapeVisualShadow.Size = new Vector2(50, 50); shapeVisualShadow.Shapes.Add(compositionSpriteShapeShadow); }
CompositionRoundedRectangleGeometry GetCompositionRoundedRectangleGeometry(CompositionRoundedRectangleGeometry obj) { if (GetExisting(obj, out CompositionRoundedRectangleGeometry result)) { return(result); } result = CacheAndInitializeCompositionGeometry(obj, _c.CreateRoundedRectangleGeometry()); if (obj.Offset != null) { result.Offset = obj.Offset; } result.Size = obj.Size; result.CornerRadius = obj.CornerRadius; StartAnimationsAndFreeze(obj, result); return(result); }
public void DrawRectangle(IRectangle rectangle) { Vector2 size = new Vector2((float)rectangle.Width, (float)rectangle.Height); if (rectangle.RadiusX > 0 || rectangle.RadiusY > 0) { CompositionRoundedRectangleGeometry roundedRectangleGeometry = _compositor.CreateRoundedRectangleGeometry(); roundedRectangleGeometry.Size = size; roundedRectangleGeometry.CornerRadius = new Vector2((float)rectangle.RadiusX, (float)rectangle.RadiusY); DrawShapeGeometry(roundedRectangleGeometry, rectangle); } else { CompositionRectangleGeometry rectangleGeometry = _compositor.CreateRectangleGeometry(); rectangleGeometry.Size = size; DrawShapeGeometry(rectangleGeometry, rectangle); } }
private void CreateMainElipse() { CompositionRoundedRectangleGeometry roundedRectangle = compositor.CreateRoundedRectangleGeometry(); roundedRectangle.Size = new Vector2(150, 50); roundedRectangle.CornerRadius = new Vector2(25, 25); CompositionSpriteShape compositionSpriteShape = compositor.CreateSpriteShape(roundedRectangle); linearGradientBrush = compositor.CreateLinearGradientBrush(); linearGradientBrush.StartPoint = new Vector2(0, 1); linearGradientBrush.EndPoint = new Vector2(0f, 1); linearGradientBrush.ColorStops.Insert(0, compositor.CreateColorGradientStop(0f, backgroundColor)); linearGradientBrush.ColorStops.Insert(1, compositor.CreateColorGradientStop(0.5f, waveColor)); linearGradientBrush.ColorStops.Insert(2, compositor.CreateColorGradientStop(1f, backgroundColor)); compositionSpriteShape.FillBrush = linearGradientBrush; shapeVisualElipse = compositor.CreateShapeVisual(); shapeVisualElipse.Size = new Vector2(150, 50); shapeVisualElipse.Shapes.Add(compositionSpriteShape); }
XElement FromCompositionRoundedRectangleGeometry(CompositionRoundedRectangleGeometry obj) { return(new XElement(GetCompositionObjectName(obj), GetContents())); IEnumerable <XObject> GetContents() { foreach (var item in GetCompositionGeometryContents(obj)) { yield return(item); } if (obj.Offset != null) { yield return(FromVector2(nameof(obj.Offset), obj.Offset.Value)); } yield return(FromVector2(nameof(obj.Size), obj.Size)); yield return(FromVector2(nameof(obj.CornerRadius), obj.CornerRadius)); } }
// Main circle private void CreateTopCircleButton() { CompositionRoundedRectangleGeometry circleGeometry = compositor.CreateRoundedRectangleGeometry(); circleGeometry.Size = new Vector2(40, 40); circleGeometry.CornerRadius = new Vector2(20, 20); CompositionSpriteShape compositionSpriteShape = compositor.CreateSpriteShape(circleGeometry); circleGradientBrush = compositor.CreateRadialGradientBrush(); // Color animation ColorStop1 = compositor.CreateColorGradientStop(1, Colors.White); circleGradientBrush.ColorStops.Add(ColorStop1); color1Animation = compositor.CreateColorKeyFrameAnimation(); color1Animation.Duration = TimeSpan.FromSeconds(0.5); color1Animation.InsertKeyFrame(1.0f, Color.FromArgb(255, 247, 211, 156)); color1Animation.InsertKeyFrame(0.0f, Colors.White); color2Animation = compositor.CreateColorKeyFrameAnimation(); color2Animation.Duration = TimeSpan.FromSeconds(0.5); color2Animation.InsertKeyFrame(1.0f, Colors.White); color2Animation.InsertKeyFrame(0.0f, Color.FromArgb(255, 247, 211, 156)); compositionSpriteShape.FillBrush = circleGradientBrush; compositionSpriteShape.Offset = new Vector2(5, 5); shapeVisualCircle = compositor.CreateShapeVisual(); shapeVisualCircle.Size = new Vector2(50, 50); shapeVisualCircle.Shapes.Add(compositionSpriteShape); shapeVisualCircle.Offset = new Vector3(sliderMargins.X, 0, 0); // Return animation _leftoffsetAnimation = compositor.CreateVector3KeyFrameAnimation(); _leftoffsetAnimation.InsertKeyFrame(1.0f, new Vector3(0 + sliderMargins.X, 0, 0)); _leftoffsetAnimation.Duration = TimeSpan.FromSeconds(0.2f); _rightoffsetAnimation = compositor.CreateVector3KeyFrameAnimation(); _rightoffsetAnimation.InsertKeyFrame(1.0f, new Vector3(100 - sliderMargins.Y, 0, 0)); _rightoffsetAnimation.Duration = TimeSpan.FromSeconds(0.2f); }
internal WrappedRoundedRectangleGeometry(CompositionRoundedRectangleGeometry wrapped) : base(wrapped) { _wrapped = wrapped; }