using System; using CPF.Controls; using CPF.Drawing; using CPF.ReoGrid.Drawing; using CPF.ReoGrid.Rendering; namespace CPF.ReoGrid.WPF { internal class SheetTabItem : Decorator { [UIPropertyMetadata(false, UIPropertyOptions.AffectsRender)] public bool IsSelected { get { return (bool)this.GetValue("IsSelected"); } set { this.SetValue(value, "IsSelected"); } } public SheetTabItem(SheetTabControl owner, string title) { this.owner = owner; this.ChangeTitle(title); } public void ChangeTitle(string title) { TextBlock child = new TextBlock { Text = title, MarginLeft = 4, MarginRight = 4 }; base.Child = child; } public Color BackColor { get { return (Color)this.GetValue("BackColor"); } set { this.SetValue(value, "BackColor"); } } public Color TextColor { get { return (Color)this.GetValue("TextColor"); } set { this.SetValue(value, "TextColor"); } } protected override void OnRender(DrawingContext drawingContext) { Size actualSize = base.ActualSize; float width = actualSize.Width; float height = actualSize.Height; CPFPen cpfpen = new CPFPen(this.owner.BorderColor, 1f); bool isSelected = this.IsSelected; if (isSelected) { Brush fillBrush = (this.BackColor.A > 0) ? new SolidColorBrush(this.BackColor) : "White"; float num = 0f; float num2 = 0f; drawingContext.FillRectangle(fillBrush, new Rect(ref num, ref num2, ref width, ref height)); Stroke stroke = cpfpen.Stroke; Brush brush = cpfpen.Brush; num = 0f; num2 = 0f; Point point = new Point(ref num, ref num2); float num3 = 0f; Point point2 = new Point(ref num3, ref height); drawingContext.DrawLine(stroke, brush, point, point2); stroke = cpfpen.Stroke; Brush brush2 = cpfpen.Brush; num = 0f; point = new Point(ref width, ref num); point2 = new Point(ref width, ref height); drawingContext.DrawLine(stroke, brush2, point, point2); stroke = cpfpen.Stroke; Brush brush3 = cpfpen.Brush; num = 0f; point = new Point(ref num, ref height); point2 = new Point(ref width, ref height); drawingContext.DrawLine(stroke, brush3, point, point2); stroke = new Stroke(1f); Brush strokeBrush = "White"; num = 1f; num2 = 0f; point = new Point(ref num, ref num2); num3 = 0f; point2 = new Point(ref width, ref num3); drawingContext.DrawLine(stroke, strokeBrush, point, point2); } else { Brush fillBrush2 = (this.BackColor.A > 0) ? new SolidColorBrush(this.BackColor) : StaticResources.SystemColor_Control; float num = 0f; float num2 = 0f; drawingContext.FillRectangle(fillBrush2, new Rect(ref num, ref num2, ref width, ref height)); int num4 = this.owner.canvas.Children.IndexOf(this); bool flag = num4 > 0; Stroke stroke; Point point; float num3; Point point2; if (flag) { stroke = new Stroke(1f); Brush strokeBrush2 = StaticResources.ControlDarkDarkBrush; num = 0f; num2 = 2f; point = new Point(ref num, ref num2); num3 = 0f; float num5 = height - 2f; point2 = new Point(ref num3, ref num5); drawingContext.DrawLine(stroke, strokeBrush2, point, point2); } stroke = cpfpen.Stroke; Brush brush4 = cpfpen.Brush; num = 0f; num2 = 0f; point = new Point(ref num, ref num2); num3 = 0f; point2 = new Point(ref width, ref num3); drawingContext.DrawLine(stroke, brush4, point, point2); } } private SheetTabControl owner; } }