From a98e6967d8391743f4a7c63321a13198edb90d09 Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Sat, 14 Jun 2014 20:12:46 +0200 Subject: [PATCH] CanGrow --- .../Src/Wpf/Visitor/FixedDocumentCreator.cs | 14 ++++++++------ .../Src/Wpf/Visitor/WpfVisitor.cs | 16 ++++++---------- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/FixedDocumentCreator.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/FixedDocumentCreator.cs index e0abb1b986..aee385c9d8 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/FixedDocumentCreator.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/FixedDocumentCreator.cs @@ -66,11 +66,7 @@ namespace ICSharpCode.Reporting.WpfReportViewer.Visitor FlowDirection flowDirection; var culture = CultureInfo.CurrentCulture; - if (culture.TextInfo.IsRightToLeft) { - flowDirection = FlowDirection.RightToLeft; - } else { - flowDirection = FlowDirection.LeftToRight; - } + flowDirection = culture.TextInfo.IsRightToLeft ? FlowDirection.RightToLeft : FlowDirection.LeftToRight; var emSize = ExtensionMethodes.ToPoints((int)exportText.Font.SizeInPoints +1); @@ -81,8 +77,14 @@ namespace ICSharpCode.Reporting.WpfReportViewer.Visitor emSize, new SolidColorBrush(exportText.ForeColor.ToWpf()), null, TextFormattingMode.Display); - formattedText.MaxTextWidth = ExtensionMethodes.ToPoints(exportText.DesiredSize.Width); + formattedText.MaxTextWidth = exportText.DesiredSize.Width ; +// formattedText.TextAlignment = TextAlignment.Justify; + if (!exportText.CanGrow) { + formattedText.MaxTextHeight = exportText.Size.Height; + } else { + formattedText.MaxTextHeight = ExtensionMethodes.ToPoints(exportText.DesiredSize.Height ); + } ApplyPrintStyles(formattedText,exportText); return formattedText; diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/WpfVisitor.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/WpfVisitor.cs index 70ed71dbdf..e843cc16e5 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/WpfVisitor.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/WpfVisitor.cs @@ -120,26 +120,22 @@ namespace ICSharpCode.Reporting.WpfReportViewer.Visitor public override void Visit(ExportText exportColumn){ var formattedText = FixedDocumentCreator.CreateFormattedText((ExportText)exportColumn); - var visual = new DrawingVisual(); - var location = new Point(exportColumn.Location.X,exportColumn.Location.Y); - using (var dc = visual.RenderOpen()){ + var visual = new DrawingVisual(); + using (var drawingContext = visual.RenderOpen()){ if (ShouldSetBackcolor(exportColumn)) { - dc.DrawRectangle(FixedDocumentCreator.ConvertBrush(exportColumn.BackColor), + drawingContext.DrawRectangle(FixedDocumentCreator.ConvertBrush(exportColumn.BackColor), null, new Rect(location,new Size(exportColumn.Size.Width,exportColumn.Size.Height))); } - +//http://stackoverflow.com/questions/4542717/length-of-string-that-will-fit-in-a-specific-width // http://stackoverflow.com/questions/9264398/how-to-calculate-wpf-textblock-width-for-its-known-font-size-and-characters -// if (exportColumn.ContentAlignment == System.Drawing.ContentAlignment.MiddleCenter) { -// location = new Point(location.X + (exportColumn.Size.Width - formattedText.Width) /2,location.Y + (exportColumn.Size.Height - formattedText.Height) / 2); -// } var offset = FixedDocumentCreator.CalculateAlignmentOffset(formattedText,exportColumn); var newLoc = new Point(location.X + offset.X,location.Y + offset.Y); -// dc.DrawText(formattedText,location); - dc.DrawText(formattedText,newLoc); + + drawingContext.DrawText(formattedText,newLoc); } var dragingElement = new DrawingElement(visual); UIElement = dragingElement;