Browse Source

CanGrow

pull/503/head
Peter Forstmeier 11 years ago
parent
commit
a98e6967d8
  1. 14
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/FixedDocumentCreator.cs
  2. 16
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/WpfVisitor.cs

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

@ -66,11 +66,7 @@ namespace ICSharpCode.Reporting.WpfReportViewer.Visitor
FlowDirection flowDirection; FlowDirection flowDirection;
var culture = CultureInfo.CurrentCulture; var culture = CultureInfo.CurrentCulture;
if (culture.TextInfo.IsRightToLeft) { flowDirection = culture.TextInfo.IsRightToLeft ? FlowDirection.RightToLeft : FlowDirection.LeftToRight;
flowDirection = FlowDirection.RightToLeft;
} else {
flowDirection = FlowDirection.LeftToRight;
}
var emSize = ExtensionMethodes.ToPoints((int)exportText.Font.SizeInPoints +1); var emSize = ExtensionMethodes.ToPoints((int)exportText.Font.SizeInPoints +1);
@ -81,8 +77,14 @@ namespace ICSharpCode.Reporting.WpfReportViewer.Visitor
emSize, emSize,
new SolidColorBrush(exportText.ForeColor.ToWpf()), null, TextFormattingMode.Display); 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); ApplyPrintStyles(formattedText,exportText);
return formattedText; return formattedText;

16
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){ public override void Visit(ExportText exportColumn){
var formattedText = FixedDocumentCreator.CreateFormattedText((ExportText)exportColumn); var formattedText = FixedDocumentCreator.CreateFormattedText((ExportText)exportColumn);
var visual = new DrawingVisual();
var location = new Point(exportColumn.Location.X,exportColumn.Location.Y); 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)) { if (ShouldSetBackcolor(exportColumn)) {
dc.DrawRectangle(FixedDocumentCreator.ConvertBrush(exportColumn.BackColor), drawingContext.DrawRectangle(FixedDocumentCreator.ConvertBrush(exportColumn.BackColor),
null, null,
new Rect(location,new Size(exportColumn.Size.Width,exportColumn.Size.Height))); 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 // 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 offset = FixedDocumentCreator.CalculateAlignmentOffset(formattedText,exportColumn);
var newLoc = new Point(location.X + offset.X,location.Y + offset.Y); 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); var dragingElement = new DrawingElement(visual);
UIElement = dragingElement; UIElement = dragingElement;

Loading…
Cancel
Save