Browse Source

PdfVisitor, Alignment.Right, WpfVisitor.cs Draw Border around Control

pull/681/head
Peter Forstmeier 11 years ago
parent
commit
76f56f7616
  1. 3
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Pdf/PdfHelper.cs
  2. 1
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/FixedDocumentCreator.cs
  3. 44
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/WpfVisitor.cs

3
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Pdf/PdfHelper.cs

@ -36,6 +36,7 @@ namespace ICSharpCode.Reporting.Pdf
var font = PdfHelper.CreatePdfFont(exportColumn); var font = PdfHelper.CreatePdfFont(exportColumn);
var rect = new Rectangle(columnLocation,exportColumn.DesiredSize).ToXRect(); var rect = new Rectangle(columnLocation,exportColumn.DesiredSize).ToXRect();
textFormatter.Alignment = XParagraphAlignment(exportColumn); textFormatter.Alignment = XParagraphAlignment(exportColumn);
textFormatter.DrawString(exportColumn.Text, textFormatter.DrawString(exportColumn.Text,
font, font,
CreateBrush(exportColumn.ForeColor), CreateBrush(exportColumn.ForeColor),
@ -102,7 +103,7 @@ namespace ICSharpCode.Reporting.Pdf
case System.Windows.TextAlignment.Center: case System.Windows.TextAlignment.Center:
return PdfSharp.Drawing.Layout.XParagraphAlignment.Center; return PdfSharp.Drawing.Layout.XParagraphAlignment.Center;
case System.Windows.TextAlignment.Right: case System.Windows.TextAlignment.Right:
return PdfSharp.Drawing.Layout.XParagraphAlignment.Center; return PdfSharp.Drawing.Layout.XParagraphAlignment.Right;
case System.Windows.TextAlignment.Justify: case System.Windows.TextAlignment.Justify:
return PdfSharp.Drawing.Layout.XParagraphAlignment.Justify; return PdfSharp.Drawing.Layout.XParagraphAlignment.Justify;
} }

1
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/FixedDocumentCreator.cs

@ -150,6 +150,7 @@ namespace ICSharpCode.Reporting.WpfReportViewer.Visitor
FixedPage.SetTop(element,exportColumn.Location.Y); FixedPage.SetTop(element,exportColumn.Location.Y);
} }
/* /*
public static Point CalculateAlignmentOffset (FormattedText formattedText, ExportText exportText) { public static Point CalculateAlignmentOffset (FormattedText formattedText, ExportText exportText) {
var offset = new Point(0,0); var offset = new Point(0,0);

44
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/WpfVisitor.cs

@ -93,12 +93,13 @@ namespace ICSharpCode.Reporting.WpfReportViewer.Visitor
} }
Canvas RenderGraphicsContainer(IExportColumn column) Canvas RenderGraphicsContainer(IExportColumn column){
{
var graphicsContainer = column as GraphicsContainer; var graphicsContainer = column as GraphicsContainer;
var graphCanvas = FixedDocumentCreator.CreateContainer(graphicsContainer); var graphCanvas = FixedDocumentCreator.CreateContainer(graphicsContainer);
CanvasHelper.SetPosition(graphCanvas, column.Location.ToWpf()); CanvasHelper.SetPosition(graphCanvas, column.Location.ToWpf());
graphCanvas.Background = FixedDocumentCreator.ConvertBrush(column.BackColor); graphCanvas.Background = FixedDocumentCreator.ConvertBrush(column.BackColor);
if (graphicsContainer != null) { if (graphicsContainer != null) {
var rect = column as ExportRectangle; var rect = column as ExportRectangle;
if (rect != null) { if (rect != null) {
@ -116,6 +117,7 @@ namespace ICSharpCode.Reporting.WpfReportViewer.Visitor
} }
// http://stackoverflow.com/questions/25308612/vertical-alignment-with-drawingcontext-drawtext // http://stackoverflow.com/questions/25308612/vertical-alignment-with-drawingcontext-drawtext
public override void Visit(ExportText exportColumn){ public override void Visit(ExportText exportColumn){
var formattedText = FixedDocumentCreator.CreateFormattedText((ExportText)exportColumn); var formattedText = FixedDocumentCreator.CreateFormattedText((ExportText)exportColumn);
@ -124,21 +126,32 @@ namespace ICSharpCode.Reporting.WpfReportViewer.Visitor
var visual = new DrawingVisual(); var visual = new DrawingVisual();
using (var drawingContext = visual.RenderOpen()){ using (var drawingContext = visual.RenderOpen()){
var desiredRect = new Rect(location,new Size(exportColumn.DesiredSize.Width,exportColumn.DesiredSize.Height));
if (ShouldSetBackcolor(exportColumn)) { if (ShouldSetBackcolor(exportColumn)) {
var r = new Rect(location,new Size(exportColumn.Size.Width,exportColumn.Size.Height));
drawingContext.DrawRectangle(FixedDocumentCreator.ConvertBrush(exportColumn.BackColor), drawingContext.DrawRectangle(FixedDocumentCreator.ConvertBrush(exportColumn.BackColor),
null, null,
new Rect(location,new Size(exportColumn.Size.Width,exportColumn.Size.Height))); desiredRect);
} }
drawingContext.DrawText(formattedText,location); drawingContext.DrawText(formattedText,location);
if (HasFrame(exportColumn)) {
desiredRect.Inflate(2,2);
var pen = FixedDocumentCreator.CreateWpfPen(exportColumn);
pen.Thickness = 2;
drawingContext.DrawRectangle(null, pen,desiredRect);
}
} }
var dragingElement = new DrawingElement(visual);
UIElement = dragingElement; var drawingElement = new DrawingElement(visual);
UIElement = drawingElement;
} }
public override void Visit(ExportLine exportLine) public override void Visit(ExportLine exportLine){
{
var pen = FixedDocumentCreator.CreateWpfPen(exportLine); var pen = FixedDocumentCreator.CreateWpfPen(exportLine);
var visual = new DrawingVisual(); var visual = new DrawingVisual();
using (var dc = visual.RenderOpen()){ using (var dc = visual.RenderOpen()){
@ -152,8 +165,7 @@ namespace ICSharpCode.Reporting.WpfReportViewer.Visitor
} }
public override void Visit(ExportRectangle exportRectangle) public override void Visit(ExportRectangle exportRectangle){
{
var border = CreateBorder(exportRectangle); var border = CreateBorder(exportRectangle);
border.CornerRadius = new CornerRadius(Convert.ToDouble(exportRectangle.CornerRadius)); border.CornerRadius = new CornerRadius(Convert.ToDouble(exportRectangle.CornerRadius));
CanvasHelper.SetPosition(border, new Point(0,0)); CanvasHelper.SetPosition(border, new Point(0,0));
@ -163,8 +175,7 @@ namespace ICSharpCode.Reporting.WpfReportViewer.Visitor
} }
public override void Visit(ExportCircle exportCircle) public override void Visit(ExportCircle exportCircle){
{
var drawingElement = CircleVisual(exportCircle); var drawingElement = CircleVisual(exportCircle);
var containerCanvas = CreateItemsInContainer(exportCircle.ExportedItems); var containerCanvas = CreateItemsInContainer(exportCircle.ExportedItems);
containerCanvas.Children.Insert(0,drawingElement); containerCanvas.Children.Insert(0,drawingElement);
@ -199,8 +210,8 @@ namespace ICSharpCode.Reporting.WpfReportViewer.Visitor
} }
static Border CreateBorder(IExportColumn exportColumn) static Border CreateBorder(IExportColumn exportColumn){
{
var border = new Border(); var border = new Border();
border.BorderThickness = Thickness(exportColumn); border.BorderThickness = Thickness(exportColumn);
border.BorderBrush = FixedDocumentCreator.ConvertBrush(exportColumn.ForeColor); border.BorderBrush = FixedDocumentCreator.ConvertBrush(exportColumn.ForeColor);
@ -211,8 +222,7 @@ namespace ICSharpCode.Reporting.WpfReportViewer.Visitor
} }
static Thickness Thickness(IExportColumn exportColumn) static Thickness Thickness(IExportColumn exportColumn){
{
double bT; double bT;
bT = !IsGraphicsContainer(exportColumn) ? 1 : Convert.ToDouble(((GraphicsContainer)exportColumn).Thickness); bT = !IsGraphicsContainer(exportColumn) ? 1 : Convert.ToDouble(((GraphicsContainer)exportColumn).Thickness);
return new Thickness(bT); return new Thickness(bT);

Loading…
Cancel
Save