Peter Forstmeier 12 years ago
parent
commit
fe1ba9bd8f
  1. 109
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentCreator.cs
  2. 1
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/AbstractVisitor.cs
  3. 7
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/WpfVisitor.cs
  4. 4
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs
  5. 4
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportText.cs
  6. 2
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestReports/FromList.srd

109
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentCreator.cs

@ -7,12 +7,14 @@ @@ -7,12 +7,14 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Globalization;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Media;
using ICSharpCode.Reporting.BaseClasses;
using ICSharpCode.Reporting.Interfaces;
using ICSharpCode.Reporting.Interfaces.Export;
using ICSharpCode.Reporting.PageBuilder.ExportColumns;
@ -20,7 +22,6 @@ using Brush = System.Windows.Media.Brush; @@ -20,7 +22,6 @@ using Brush = System.Windows.Media.Brush;
using FontFamily = System.Windows.Media.FontFamily;
using Pen = System.Windows.Media.Pen;
using Size = System.Windows.Size;
using ICSharpCode.Reporting.BaseClasses;
namespace ICSharpCode.Reporting.ExportRenderer
{
@ -77,14 +78,17 @@ namespace ICSharpCode.Reporting.ExportRenderer @@ -77,14 +78,17 @@ namespace ICSharpCode.Reporting.ExportRenderer
}
var li = textBlock.Inlines.LastInline;
textBlock.Inlines.Remove(li);
var s = MeasureTextInWpf(exportText);
textBlock.Width = s.Width;
textBlock.Height = s.Height;
SetContentAlignment(textBlock,exportText);
var wpfSize = MeasureTextInWpf(exportText);
textBlock.Width = wpfSize.Width;
textBlock.Height = wpfSize.Height;
// textBlock.Background = ConvertBrush(exportText.StyleDecorator.BackColor);
// SetContendAlignment(textBlock,exportText.StyleDecorator);
if (exportText.ContentAlignment != System.Drawing.ContentAlignment.TopLeft) {
Console.WriteLine("----Aliogn --------{0}",exportText.ContentAlignment.ToString());
}
// SetContentAlignment(textBlock,exportText);
return textBlock;
}
@ -171,6 +175,99 @@ namespace ICSharpCode.Reporting.ExportRenderer @@ -171,6 +175,99 @@ namespace ICSharpCode.Reporting.ExportRenderer
}
void SetContentAlignment(TextBlock textBlock,ExportText exportText)
{
// http://social.msdn.microsoft.com/Forums/vstudio/en-US/e480abb9-a86c-4f78-8955-dddb866bcfef/vertical-text-alignment-in-textblock?forum=wpf
//Vertical alignment not working
Console.WriteLine("align {0}",exportText.ContentAlignment);
switch (exportText.ContentAlignment) {
case System.Drawing.ContentAlignment.TopLeft:
textBlock.VerticalAlignment = VerticalAlignment.Top;
textBlock.TextAlignment = TextAlignment.Left;
break;
case System.Drawing.ContentAlignment.TopCenter:
textBlock.VerticalAlignment = VerticalAlignment.Top;
textBlock.TextAlignment = TextAlignment.Center;
break;
case System.Drawing.ContentAlignment.TopRight:
textBlock.VerticalAlignment = VerticalAlignment.Top;
textBlock.TextAlignment = TextAlignment.Right;
break;
// Middle
case System.Drawing.ContentAlignment.MiddleLeft:
textBlock.VerticalAlignment = VerticalAlignment.Center;
textBlock.TextAlignment = TextAlignment.Left;
break;
case System.Drawing.ContentAlignment.MiddleCenter:
textBlock.VerticalAlignment = VerticalAlignment.Center;
textBlock.TextAlignment = TextAlignment.Center;
break;
case System.Drawing.ContentAlignment.MiddleRight:
textBlock.VerticalAlignment = VerticalAlignment.Center;
textBlock.TextAlignment = TextAlignment.Right;
break;
//Bottom
case System.Drawing.ContentAlignment.BottomLeft:
textBlock.VerticalAlignment = VerticalAlignment.Bottom;
textBlock.TextAlignment = TextAlignment.Left;
break;
case System.Drawing.ContentAlignment.BottomCenter:
textBlock.VerticalAlignment = VerticalAlignment.Bottom;
textBlock.TextAlignment = TextAlignment.Center;
break;
case System.Drawing.ContentAlignment.BottomRight:
textBlock.VerticalAlignment = VerticalAlignment.Bottom;
textBlock.TextAlignment = TextAlignment.Right;
break;
}
}
/*
private void SetContendAlignment(TextBlock textBlock,TextStyleDecorator decorator)
{
switch (decorator.ContentAlignment)
{
case ContentAlignment.TopLeft:
textBlock.VerticalAlignment = VerticalAlignment.Top;
textBlock.TextAlignment = TextAlignment.Left;
break;
case ContentAlignment.TopCenter:
textBlock.VerticalAlignment = VerticalAlignment.Top;
textBlock.TextAlignment = TextAlignment.Center;
break;
case ContentAlignment.TopRight:
textBlock.VerticalAlignment = VerticalAlignment.Top;
textBlock.TextAlignment = TextAlignment.Right;
break;
// Middle
case ContentAlignment.MiddleLeft:
textBlock.VerticalAlignment = VerticalAlignment.Center;
textBlock.TextAlignment = TextAlignment.Left;
break;
case ContentAlignment.MiddleCenter:
textBlock.VerticalAlignment = VerticalAlignment.Center;
textBlock.TextAlignment = TextAlignment.Center;
break;
case ContentAlignment.MiddleRight:
textBlock.VerticalAlignment = VerticalAlignment.Center;
textBlock.TextAlignment = TextAlignment.Right;
break;
//Bottom
case ContentAlignment.BottomLeft:
textBlock.VerticalAlignment = VerticalAlignment.Bottom;
textBlock.TextAlignment = TextAlignment.Left;
break;
case ContentAlignment.BottomCenter:
textBlock.VerticalAlignment = VerticalAlignment.Bottom;
textBlock.TextAlignment = TextAlignment.Center;
break;
case ContentAlignment.BottomRight:
textBlock.VerticalAlignment = VerticalAlignment.Bottom;
textBlock.TextAlignment = TextAlignment.Right;
break;
}
}
*/
void CreateStrikeout (TextBlock textBlock,IExportText exportColumn ){
if (textBlock == null)
throw new ArgumentNullException("textBlock");

1
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/AbstractVisitor.cs

@ -39,6 +39,7 @@ namespace ICSharpCode.Reporting.Exporter.Visitors @@ -39,6 +39,7 @@ namespace ICSharpCode.Reporting.Exporter.Visitors
public virtual void Visit (ExportContainer exportContainer) {
foreach (var element in exportContainer.ExportedItems) {
Console.WriteLine(((ExportText)element).ContentAlignment.ToString());
var ac = element as IAcceptor;
ac.Accept(this);
}

7
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/WpfVisitor.cs

@ -52,8 +52,11 @@ namespace ICSharpCode.Reporting.Exporter.Visitors @@ -52,8 +52,11 @@ namespace ICSharpCode.Reporting.Exporter.Visitors
public override void Visit(ExportText exportColumn)
{
Console.WriteLine("\t\tExpressionVisitor <{0}>",exportColumn.Name);
var textBlock = documentCreator.CreateTextBlock(exportColumn);
Console.WriteLine("\t\tExpressionVisitor <{0}>",exportColumn.GetType());
if (exportColumn.ContentAlignment != System.Drawing.ContentAlignment.TopLeft) {
Console.WriteLine("heureka {0}",exportColumn.ContentAlignment);
}
var textBlock = documentCreator.CreateTextBlock((ExportText)exportColumn);
CanvasHelper.SetPosition(textBlock,new Point(exportColumn.Location.X,exportColumn.Location.Y));
currentCanvas.Children.Add(textBlock);
}

4
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs

@ -22,6 +22,7 @@ namespace ICSharpCode.Reporting.Items @@ -22,6 +22,7 @@ namespace ICSharpCode.Reporting.Items
{
Font Font {get;set;}
string Text {get;set;}
ContentAlignment ContentAlignment {get;set;}
string FormatString {get;set;}
string DataType {get;set;}
@ -41,6 +42,8 @@ namespace ICSharpCode.Reporting.Items @@ -41,6 +42,8 @@ namespace ICSharpCode.Reporting.Items
public string FormatString {get;set;}
public ContentAlignment ContentAlignment {get;set;}
string dataType;
public string DataType
@ -69,6 +72,7 @@ namespace ICSharpCode.Reporting.Items @@ -69,6 +72,7 @@ namespace ICSharpCode.Reporting.Items
ex.Font = Font;
ex.Text = Text;
ex.FormatString = FormatString;
ex.ContentAlignment = ContentAlignment;
ex.DataType = DataType;
ex.CanGrow = CanGrow;
return ex;

4
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportText.cs

@ -23,6 +23,7 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns @@ -23,6 +23,7 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns
{
Font Font {get;set;}
string Text {get;set;}
ContentAlignment ContentAlignment {get;set;}
string DataType {get;set;}
string FormatString {get;set;}
}
@ -46,7 +47,8 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns @@ -46,7 +47,8 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns
public string FormatString {get;set;}
public ContentAlignment ContentAlignment {get;set;}
public string DataType {get;set;}
public override ICSharpCode.Reporting.Arrange.IMeasurementStrategy MeasurementStrategy()

2
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestReports/FromList.srd

@ -85,7 +85,7 @@ @@ -85,7 +85,7 @@
<Font>Segoe UI, 9pt</Font>
<FormatString>#,##0.00</FormatString>
<StringTrimming>None</StringTrimming>
<ContentAlignment>TopLeft</ContentAlignment>
<ContentAlignment>MiddleRight</ContentAlignment>
<CanGrow>False</CanGrow>
<CanShrink>False</CanShrink>
<DataType>System.Decimal</DataType>

Loading…
Cancel
Save