Browse Source

Better ColorConverter

pull/15/head^2
peterforstmeier 14 years ago
parent
commit
498b738a1c
  1. 32
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/WPF/FixedDocumentCreator.cs

32
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/WPF/FixedDocumentCreator.cs

@ -110,7 +110,7 @@ namespace ICSharpCode.Reports.Core.WPF
border.Padding = new Thickness(1); border.Padding = new Thickness(1);
border.BorderThickness = new Thickness(2); border.BorderThickness = new Thickness(2);
border.CornerRadius = new CornerRadius(2); border.CornerRadius = new CornerRadius(2);
border.BorderBrush = brushConverter.ConvertFromString(column.ForeColor.Name) as SolidColorBrush; border.BorderBrush = ConvertBrush(column.ForeColor);
return border; return border;
} }
@ -118,7 +118,7 @@ namespace ICSharpCode.Reports.Core.WPF
UIElement CreateGraphicsElement(ExportGraphic column) UIElement CreateGraphicsElement(ExportGraphic column)
{ {
var line = new System.Windows.Shapes.Line(); var line = new System.Windows.Shapes.Line();
line.Stroke = brushConverter.ConvertFromString(column.StyleDecorator.ForeColor.Name) as SolidColorBrush; line.Stroke = ConvertBrush(column.StyleDecorator.ForeColor);
line.StrokeThickness = column.StyleDecorator.Thickness; line.StrokeThickness = column.StyleDecorator.Thickness;
var ld = column.StyleDecorator as LineDecorator; var ld = column.StyleDecorator as LineDecorator;
@ -150,21 +150,19 @@ namespace ICSharpCode.Reports.Core.WPF
var circle = new System.Windows.Shapes.Ellipse(); var circle = new System.Windows.Shapes.Ellipse();
SetDimension(circle,decorator); SetDimension(circle,decorator);
circle.Fill = brushConverter.ConvertFromString(decorator.BackColor.Name) as SolidColorBrush; circle.Fill = ConvertBrush(decorator.BackColor);
circle.StrokeThickness = decorator.Thickness; circle.StrokeThickness = decorator.Thickness;
circle.Stroke = brushConverter.ConvertFromString(decorator.ForeColor.Name) as SolidColorBrush; circle.Stroke = ConvertBrush(decorator.ForeColor);
shape = circle; shape = circle;
} }
else else
{ {
var border = CreateBorder(decorator as BaseStyleDecorator); var border = CreateBorder(decorator as BaseStyleDecorator);
SetDimension(border,decorator); SetDimension(border,decorator);
RectangleShape rs = decorator.Shape as RectangleShape; RectangleShape rs = decorator.Shape as RectangleShape;
border.CornerRadius = new CornerRadius(rs.CornerRadius); border.CornerRadius = new CornerRadius(rs.CornerRadius);
border.BorderThickness = new Thickness(decorator.Thickness); border.BorderThickness = new Thickness(decorator.Thickness);
border.BorderBrush = brushConverter.ConvertFromString(decorator.ForeColor.Name) as SolidColorBrush; border.BorderBrush = ConvertBrush(decorator.ForeColor);
shape = border; shape = border;
} }
return shape; return shape;
@ -176,9 +174,7 @@ namespace ICSharpCode.Reports.Core.WPF
{ {
var canvas = new Canvas(); var canvas = new Canvas();
SetDimension(canvas,container.StyleDecorator); SetDimension(canvas,container.StyleDecorator);
canvas.Background = ConvertBrush(container.StyleDecorator.BackColor);
SolidColorBrush backgroundBrush = brushConverter.ConvertFromString(container.StyleDecorator.BackColor.Name) as SolidColorBrush;
canvas.Background = backgroundBrush;
foreach (var exportElement in container.Items) { foreach (var exportElement in container.Items) {
var uiElement = ItemFactory (exportElement); var uiElement = ItemFactory (exportElement);
@ -248,7 +244,6 @@ namespace ICSharpCode.Reports.Core.WPF
textBlock.FontFamily = new FontFamily(styleDecorator.Font.FontFamily.Name); textBlock.FontFamily = new FontFamily(styleDecorator.Font.FontFamily.Name);
var b = styleDecorator.Font.Size; var b = styleDecorator.Font.Size;
textBlock.FontSize = b * 96/72; textBlock.FontSize = b * 96/72;
textBlock.Foreground = brushConverter.ConvertFromString(styleDecorator.ForeColor.Name) as SolidColorBrush;
if (styleDecorator.Font.Bold) { if (styleDecorator.Font.Bold) {
textBlock.FontWeight = FontWeights.Bold; textBlock.FontWeight = FontWeights.Bold;
} }
@ -264,6 +259,18 @@ namespace ICSharpCode.Reports.Core.WPF
} }
} }
Brush ConvertBrush(System.Drawing.Color color)
{
if (brushConverter.IsValid(color.Name)) {
return brushConverter.ConvertFromString(color.Name) as SolidColorBrush;
} else
{
Console.WriteLine("FixedDocumentCreator");
Console.WriteLine("\tcan't convert {0} to valid Color",color.Name);
return brushConverter.ConvertFromString("Black") as SolidColorBrush;
}
}
void CreateStrikeout (TextBlock textBlock, TextStyleDecorator styleDecorator) void CreateStrikeout (TextBlock textBlock, TextStyleDecorator styleDecorator)
{ {
@ -291,8 +298,7 @@ namespace ICSharpCode.Reports.Core.WPF
Pen CreateWpfPen(TextStyleDecorator styleDecorator) Pen CreateWpfPen(TextStyleDecorator styleDecorator)
{ {
Pen myPen = new Pen(); Pen myPen = new Pen();
SolidColorBrush underlineBrush = brushConverter.ConvertFromString(styleDecorator.ForeColor.Name) as SolidColorBrush; myPen.Brush = ConvertBrush(styleDecorator.ForeColor);
myPen.Brush = underlineBrush;
myPen.Thickness = 1.5; myPen.Thickness = 1.5;
return myPen; return myPen;
} }

Loading…
Cancel
Save