protected override void InternalDraw(IGraphicsFragment fragment, IGameEngineTime time) { var texture = GetStyleStateTexture(); var color = Style.Get <Color>($"{UiStyleKeys.Target.Button}\\{(Enabled ? UiStyleKeys.Color.Enabled : UiStyleKeys.Color.Disabled)}"); var center = Style.Get <Rectangle>($"{UiStyleKeys.Target.Button}\\{UiStyleKeys.Source.Center}"); var font = Style.Get <SpriteFont>($"{UiStyleKeys.Target.Button}\\{UiStyleKeys.Font.Normal}"); var destination = GetRenderDestinationRectangle(); var offset = GetStyleStateOffset(); destination.X += offset.X; destination.Y += offset.Y; fragment.DrawSurface(texture, center, destination, color); if (string.IsNullOrEmpty(Text)) { return; } var position = new Vector2(destination.X, destination.Y) + UiCanvas.ToScreenUnits(ActualSize) * 0.5f - font.MeasureString(Text) * 0.5f; fragment.DrawSpriteText(position, Vector2.One, 0.0f, Vector2.Zero, font.MeasureString(Text), Text, font, color); }
protected override void InternalDraw(IGraphicsFragment fragment, IGameEngineTime time) { var texture = Style.Get <Texture2D>($"{UiStyleKeys.Target.Panel}\\{UiStyleKeys.Texture.Normal}"); var color = Style.Get <Color>($"{UiStyleKeys.Target.Panel}\\{(Enabled ? UiStyleKeys.Color.Enabled : UiStyleKeys.Color.Disabled)}"); var center = Style.Get <Rectangle>($"{UiStyleKeys.Target.Panel}\\{UiStyleKeys.Source.Center}"); var destination = GetRenderDestinationRectangle(); fragment.DrawSurface(texture, center, destination, color); base.InternalDraw(fragment, time); }
protected override void InternalDraw(IGraphicsFragment fragment, IGameEngineTime time) { if (Image == null) { return; } var destination = GetRenderDestinationRectangle(); var imageOffset = Style.Get <Vector2>($"{UiStyleKeys.Target.ImageBox}\\{UiStyleKeys.Offset.Normal}"); var imageWidth = (int)Math.Floor(destination.Width * imageOffset.X); var imageHeight = (int)Math.Floor(destination.Height * imageOffset.Y); var imageX = destination.X + imageWidth * (1.0f - imageOffset.X) * 0.5f; var imageY = destination.Y + imageHeight * (1.0f - imageOffset.Y) * 0.5f; switch (ImageMode) { case ImageMode.Fit: case ImageMode.Normal: fragment.DrawSprite(new Vector2(imageX, imageY), Vector2.One, 0.0f, Vector2.Zero, new Vector2(destination.Width, destination.Height), Image, ImageColor); break; case ImageMode.Source: fragment.DrawSprite(new Vector2(imageX, imageY), Vector2.One, 0.0f, Vector2.Zero, new Vector2(destination.Width, destination.Height), ImageSource == Rectangle.Empty ? Image.Bounds : ImageSource, Image, ImageColor); break; default: throw new InvalidOrUnsupportedException(nameof(ImageMode), ImageMode); } }
protected override void InternalDraw(IGraphicsFragment fragment, IGameEngineTime time) { var texture = Style.Get <Texture2D>($"{UiStyleKeys.Target.Checkbox}\\{(Checked? UiStyleKeys.Texture.Checked : UiStyleKeys.Texture.Unchecked)}"); var color = Style.Get <Color>($"{UiStyleKeys.Target.Checkbox}\\{(Enabled ? UiStyleKeys.Color.Enabled : UiStyleKeys.Color.Disabled)}"); var destination = GetRenderDestinationRectangle(); var position = new Vector2(destination.X, destination.Y); if (Mouse.IsHovering(this) && (Mouse.IsDown(MouseButton.Left) || Mouse.IsPressed(MouseButton.Left))) { var offset = Style.Get <Vector2>($"{UiStyleKeys.Target.Button}\\{UiStyleKeys.Offset.Click}"); position.X += (int)Math.Floor(offset.X); position.Y += (int)Math.Floor(offset.Y); } fragment.DrawSprite(position, Vector2.One, 0.0f, Vector2.Zero, new Vector2(destination.Width, destination.Height), texture, color); }
public void AfterDraw(IGraphicsFragment fragment, IGameEngineTime time) => Root.AfterDraw(fragment, time);
public void BeforeDraw(IGraphicsFragment fragment, IGameEngineTime time) => Root.BeforeDraw(fragment, time);