From 41e29a31a5c60c2665c97f1032230fe81f84126c Mon Sep 17 00:00:00 2001 From: peterforstmeier Date: Fri, 8 Jul 2011 21:31:10 +0200 Subject: [PATCH] Use Inlines in TextBlock to handle in Text --- .../Project/BaseClasses/ExtensionMethodes.cs | 17 +++++------------ .../Project/BaseClasses/Printing/PrintHelper.cs | 4 ++-- .../Project/BaseItems/BaseSection.cs | 4 ++-- .../AggregateFunctions/AggregateFunction.cs | 2 +- .../Project/WPF/FixedDocumentCreator.cs | 14 +++++++++++++- 5 files changed, 23 insertions(+), 18 deletions(-) diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/ExtensionMethodes.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/ExtensionMethodes.cs index 076a6fd394..3f68af3436 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/ExtensionMethodes.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/ExtensionMethodes.cs @@ -7,19 +7,9 @@ * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; -using System.Collections; using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Linq; -using System.Text; -using System.Threading; using System.Windows; -using System.Windows.Controls; using System.Windows.Media; -using System.Windows.Documents; -using System.Windows.Forms; - -using WinForms = System.Windows.Forms; namespace ICSharpCode.Reports.Core { @@ -30,7 +20,7 @@ namespace ICSharpCode.Reports.Core /// (this IEnumerable input, Action action) { @@ -41,6 +31,9 @@ namespace ICSharpCode.Reports.Core } } + #endregion + + #region system.drawing -> Wpf public static Point ToWpf(this System.Drawing.Point p) { @@ -62,7 +55,7 @@ namespace ICSharpCode.Reports.Core return System.Windows.Media.Color.FromArgb(c.A, c.R, c.G, c.B); } - + #endregion #region DPI independence public static Rect TransformToDevice(this Rect rect, Visual visual) diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/PrintHelper.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/PrintHelper.cs index 1d731a9e26..36df8ec8b5 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/PrintHelper.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/PrintHelper.cs @@ -193,7 +193,7 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing f.Dispose(); } - + /* public static void Displaychain (ReportItemCollection items) { foreach(BaseReportItem i in items) @@ -207,7 +207,7 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing } } } - + */ public static void ShowLocations (ExporterCollection items) { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/BaseSection.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/BaseSection.cs index 63056c51a4..aa273ee193 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/BaseSection.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/BaseSection.cs @@ -132,8 +132,8 @@ namespace ICSharpCode.Reports.Core public virtual bool PageBreakAfter {get;set;} #endregion - //http://www.switchonthecode.com/tutorials/wpf-tutorial-creating-a-custom-panel-control -// http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/607eba8c-6fa4-414c-82ae-23a527cdc5bf + + public Size MeasureOverride (Size availableSize) { Size resultSize = new Size(0,0); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Compilation/Functions/AggregateFunctions/AggregateFunction.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Compilation/Functions/AggregateFunctions/AggregateFunction.cs index 124a1edfa9..6394f958d5 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Compilation/Functions/AggregateFunctions/AggregateFunction.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Compilation/Functions/AggregateFunctions/AggregateFunction.cs @@ -118,7 +118,7 @@ namespace SimpleExpressionEvaluator.Compilation.Functions.AggregateFunctions if (currentItem != null) { object s1 = Convert.ToString(currentItem.Value.ToString(),CultureInfo.CurrentCulture); - Console.WriteLine("\tSetup DataSource value = {0}", s1.ToString()); +// Console.WriteLine("\tSetup DataSource value = {0}", s1.ToString()); if (IsNumeric(s1)) { list.Add(Convert.ToDouble(s1,System.Globalization.CultureInfo.CurrentCulture)); } else { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/WPF/FixedDocumentCreator.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/WPF/FixedDocumentCreator.cs index 07217ec07e..9ababfd4fb 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/WPF/FixedDocumentCreator.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/WPF/FixedDocumentCreator.cs @@ -254,8 +254,20 @@ namespace ICSharpCode.Reports.Core.WPF TextBlock CreateTextBlock(ExportText exportText) { TextBlock textBlock = new TextBlock(); - textBlock.Text = exportText.Text; SetFont(textBlock, exportText.StyleDecorator); + textBlock.TextWrapping = TextWrapping.Wrap; + + string [] inlines = exportText.Text.Split(System.Environment.NewLine.ToCharArray()); + for (int i = 0; i < inlines.Length; i++) { + if (inlines[i].Length > 0) { + textBlock.Inlines.Add(new Run(inlines[i])); + textBlock.Inlines.Add(new LineBreak()); + } + } + var li = textBlock.Inlines.LastInline; + + textBlock.Inlines.Remove(li); + SetDimension(textBlock,exportText.StyleDecorator); return textBlock; }