diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentCreator.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentCreator.cs index 6b3b4d6f20..5f38cfeee3 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentCreator.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentCreator.cs @@ -65,9 +65,13 @@ namespace ICSharpCode.Reporting.ExportRenderer public TextBlock CreateTextBlock(ExportText exportText) { var textBlock = new TextBlock(); + textBlock.Text = exportText.Text; + textBlock.Foreground = ConvertBrush(exportText.ForeColor); SetFont(textBlock,exportText); + textBlock.Background = ConvertBrush(exportText.BackColor); + textBlock.TextWrapping = TextWrapping.WrapWithOverflow; // string [] inlines = exportText.Text.Split(System.Environment.NewLine.ToCharArray()); @@ -84,8 +88,6 @@ namespace ICSharpCode.Reporting.ExportRenderer // textBlock.Background = ConvertBrush(exportText.StyleDecorator.BackColor); // SetContendAlignment(textBlock,exportText.StyleDecorator); - SetPositionAndSize(textBlock,exportText); - textBlock.Background = ConvertBrush(exportText.BackColor); return textBlock; } @@ -94,6 +96,8 @@ namespace ICSharpCode.Reporting.ExportRenderer { var canvas = new Canvas(); SetPositionAndSize(canvas,container); + + canvas.Name = container.Name; canvas.Background = ConvertBrush(container.BackColor); return canvas; } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/WpfVisitor.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/WpfVisitor.cs index b8bdba9c72..afcf96de6e 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/WpfVisitor.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/WpfVisitor.cs @@ -8,6 +8,8 @@ */ using System; using System.Windows; +using System.Windows.Controls; + using ICSharpCode.Reporting.ExportRenderer; using ICSharpCode.Reporting.Items; using ICSharpCode.Reporting.PageBuilder.ExportColumns; @@ -39,19 +41,15 @@ namespace ICSharpCode.Reporting.Exporter.Visitors public override void Visit(ExportContainer exportColumn) { - -// Console.WriteLine("Wpf-Visit ExportContainer {0} - {1} - {2} - {3}", exportColumn.Name,exportColumn.Size, -// exportColumn.Location,exportColumn.BackColor); - - var canvas = documentCreator.CreateContainer(exportColumn); + var canvas = (Canvas)documentCreator.CreateContainer(exportColumn); UIElement = canvas; } public override void Visit(ExportText exportColumn) { -// Console.WriteLine("Wpf-Visit ExportText {0} - {1} - {2}", exportColumn.Name,exportColumn.Size,exportColumn.DesiredSize); - var textBlock = documentCreator.CreateTextBlock(exportColumn); + TextBlock textBlock = documentCreator.CreateTextBlock(exportColumn); + CanvasHelper.SetPosition(textBlock,new Point(exportColumn.Location.X,exportColumn.Location.Y)); UIElement = textBlock; } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/WpfExporter.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/WpfExporter.cs index 2569dcbca8..7903329290 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/WpfExporter.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/WpfExporter.cs @@ -90,32 +90,34 @@ namespace ICSharpCode.Reporting.Exporter Console.WriteLine("canvas at {0}",CanvasHelper.GetPosition(containerCanvas)); foreach (var element in exportContainer.ExportedItems) { - var el = element as IExportContainer; - if (el == null) { - var t = CreateSingleEntry(parentCanvas,element); - containerCanvas.Children.Add(t); - } + + if (!IsContainer(element)) { + + var singleItem = CreateSingleEntry(containerCanvas,element); + + Console.WriteLine("TEST {0} - {1}",CanvasHelper.GetPosition(singleItem),CanvasHelper.GetPosition(containerCanvas)); + containerCanvas.Children.Add(singleItem); + } ShowContainerRecursive(parentCanvas,element); } } } -// http://stackoverflow.com/questions/4523208/wpf-positioning-uielement-on-a-canvas -//http://stackoverflow.com/questions/1123101/changing-position-of-an-element-programmatically-in-wpf -//http://stackoverflow.com/questions/1923697/how-can-i-get-the-position-of-a-child-element-relative-to-a-parent - + bool IsContainer (IExportColumn column) { + var container = column as IExportContainer; + if (container == null) { + return false; + } + return true; + } Canvas CreateContainer(UIElement parent,IExportContainer exportContainer) { var containerAcceptor = exportContainer as IAcceptor; containerAcceptor.Accept(visitor); - var containerCanvas = (Canvas)visitor.UIElement; -// Console.WriteLine("CreateContainer bevore {0}",CanvasHelper.GetPosition(containerCanvas)); - CanvasHelper.SetPosition(containerCanvas, - new Point(exportContainer.Location.X,exportContainer.Location.Y)); -// Console.WriteLine("CreateContainer after {0}",CanvasHelper.GetPosition(containerCanvas)); - return containerCanvas; + var canvas = (Canvas)visitor.UIElement; + return canvas; } @@ -125,10 +127,7 @@ namespace ICSharpCode.Reporting.Exporter v.Accept(visitor); var c = visitor.UIElement; -// CanvasHelper.SetLeft(c,element.Location.X); -// CanvasHelper.SetTop(c,10); - CanvasHelper.SetPosition(c,new Point(element.Location.X,element.Location.Y)); - Console.WriteLine("CreateSingleEntry after {0}",CanvasHelper.GetPosition(c)); + Console.WriteLine("CreateSingleEntry after {0}",CanvasHelper.GetPosition(c)); return c; }