|
|
|
@ -8,9 +8,10 @@ |
|
|
|
// </autogenerated>
|
|
|
|
// </autogenerated>
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
using System; |
|
|
|
using System; |
|
|
|
using System.ComponentModel; |
|
|
|
|
|
|
|
using System.Drawing; |
|
|
|
using System.Drawing; |
|
|
|
|
|
|
|
using System.ComponentModel; |
|
|
|
|
|
|
|
using System.Xml.Serialization; |
|
|
|
|
|
|
|
|
|
|
|
using SharpReportCore; |
|
|
|
using SharpReportCore; |
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// <summary>
|
|
|
|
@ -25,18 +26,93 @@ namespace SharpReportCore { |
|
|
|
private string text; |
|
|
|
private string text; |
|
|
|
|
|
|
|
|
|
|
|
private string formatString = String.Empty; |
|
|
|
private string formatString = String.Empty; |
|
|
|
private StringAlignment stringAlignment = StringAlignment.Near; |
|
|
|
private StringFormat stringFormat; |
|
|
|
private StringFormat standartStringFormat; |
|
|
|
private StringTrimming stringTrimming; |
|
|
|
private TextDrawer textDrawer = new TextDrawer(); |
|
|
|
private TextDrawer textDrawer = new TextDrawer(); |
|
|
|
|
|
|
|
private ContentAlignment contentAlignment; |
|
|
|
|
|
|
|
|
|
|
|
#region Constructor
|
|
|
|
#region Constructor
|
|
|
|
|
|
|
|
|
|
|
|
public BaseTextItem():base() { |
|
|
|
public BaseTextItem():base() { |
|
|
|
this.standartStringFormat = GlobalValues.StandartStringFormat(); |
|
|
|
this.stringFormat = StringFormat.GenericTypographic; |
|
|
|
|
|
|
|
this.contentAlignment = ContentAlignment.MiddleLeft; |
|
|
|
|
|
|
|
this.stringTrimming = StringTrimming.EllipsisCharacter; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private StringFormat BuildStringFormat(){ |
|
|
|
|
|
|
|
StringFormat format = StringFormat.GenericTypographic; |
|
|
|
|
|
|
|
format.Trimming = this.stringTrimming; |
|
|
|
|
|
|
|
format.FormatFlags = StringFormatFlags.LineLimit; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// if (base.RightToLeft)
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
// format1.FormatFlags |= StringFormatFlags.DirectionRightToLeft;
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ContentAlignment alignment = this.contentAlignment; |
|
|
|
|
|
|
|
if (alignment <= ContentAlignment.MiddleCenter){ |
|
|
|
|
|
|
|
switch (alignment){ |
|
|
|
|
|
|
|
case ContentAlignment.TopLeft:{ |
|
|
|
|
|
|
|
format.Alignment = StringAlignment.Near; |
|
|
|
|
|
|
|
format.LineAlignment = StringAlignment.Near; |
|
|
|
|
|
|
|
return format; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
case ContentAlignment.TopCenter:{ |
|
|
|
|
|
|
|
format.Alignment = StringAlignment.Center; |
|
|
|
|
|
|
|
format.LineAlignment = StringAlignment.Near; |
|
|
|
|
|
|
|
return format; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
case (ContentAlignment.TopCenter | ContentAlignment.TopLeft):{ |
|
|
|
|
|
|
|
return format; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
case ContentAlignment.TopRight:{ |
|
|
|
|
|
|
|
format.Alignment = StringAlignment.Far; |
|
|
|
|
|
|
|
format.LineAlignment = StringAlignment.Near; |
|
|
|
|
|
|
|
return format; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
case ContentAlignment.MiddleLeft:{ |
|
|
|
|
|
|
|
format.Alignment = StringAlignment.Near; |
|
|
|
|
|
|
|
format.LineAlignment = StringAlignment.Center; |
|
|
|
|
|
|
|
return format; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
case ContentAlignment.MiddleCenter:{ |
|
|
|
|
|
|
|
format.Alignment = StringAlignment.Center; |
|
|
|
|
|
|
|
format.LineAlignment = StringAlignment.Center; |
|
|
|
|
|
|
|
return format; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return format; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (alignment <= ContentAlignment.BottomLeft){ |
|
|
|
|
|
|
|
if (alignment == ContentAlignment.MiddleRight){ |
|
|
|
|
|
|
|
format.Alignment = StringAlignment.Far; |
|
|
|
|
|
|
|
format.LineAlignment = StringAlignment.Center; |
|
|
|
|
|
|
|
return format; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (alignment != ContentAlignment.BottomLeft){ |
|
|
|
|
|
|
|
return format; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else{ |
|
|
|
|
|
|
|
if (alignment != ContentAlignment.BottomCenter){ |
|
|
|
|
|
|
|
if (alignment == ContentAlignment.BottomRight) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
format.Alignment = StringAlignment.Far; |
|
|
|
|
|
|
|
format.LineAlignment = StringAlignment.Far; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return format; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
format.Alignment = StringAlignment.Center; |
|
|
|
|
|
|
|
format.LineAlignment = StringAlignment.Far; |
|
|
|
|
|
|
|
return format; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
format.Alignment = StringAlignment.Near; |
|
|
|
|
|
|
|
format.LineAlignment = StringAlignment.Far; |
|
|
|
|
|
|
|
return format; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public override void Render(ReportPageEventArgs rpea) { |
|
|
|
public override void Render(ReportPageEventArgs rpea) { |
|
|
|
if (rpea == null) { |
|
|
|
if (rpea == null) { |
|
|
|
throw new ArgumentNullException("rpea"); |
|
|
|
throw new ArgumentNullException("rpea"); |
|
|
|
@ -69,6 +145,7 @@ namespace SharpReportCore { |
|
|
|
Decorate (e,System.Drawing.Rectangle.Ceiling (rect)); |
|
|
|
Decorate (e,System.Drawing.Rectangle.Ceiling (rect)); |
|
|
|
return rect; |
|
|
|
return rect; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
///<summary>
|
|
|
|
///<summary>
|
|
|
|
/// Measure the Size of the String rectangle
|
|
|
|
/// Measure the Size of the String rectangle
|
|
|
|
/// </summary>
|
|
|
|
/// </summary>
|
|
|
|
@ -79,7 +156,7 @@ namespace SharpReportCore { |
|
|
|
measureSizeF = rpea.PrintPageEventArgs.Graphics.MeasureString(text, |
|
|
|
measureSizeF = rpea.PrintPageEventArgs.Graphics.MeasureString(text, |
|
|
|
this.Font, |
|
|
|
this.Font, |
|
|
|
this.Size.Width, |
|
|
|
this.Size.Width, |
|
|
|
StandartStringFormat); |
|
|
|
this.stringFormat); |
|
|
|
return measureSizeF; |
|
|
|
return measureSizeF; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -97,9 +174,7 @@ namespace SharpReportCore { |
|
|
|
if (rpea == null) { |
|
|
|
if (rpea == null) { |
|
|
|
throw new ArgumentException (this.Name); |
|
|
|
throw new ArgumentException (this.Name); |
|
|
|
} |
|
|
|
} |
|
|
|
StringFormat fmt = StandartStringFormat; |
|
|
|
StringFormat fmt = this.stringFormat; |
|
|
|
fmt.Alignment = this.StringAlignment; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
textDrawer.DrawString(rpea.PrintPageEventArgs.Graphics, |
|
|
|
textDrawer.DrawString(rpea.PrintPageEventArgs.Graphics, |
|
|
|
toPrint, |
|
|
|
toPrint, |
|
|
|
this.Font, |
|
|
|
this.Font, |
|
|
|
@ -129,43 +204,46 @@ namespace SharpReportCore { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
///<summary>
|
|
|
|
public virtual string Text { |
|
|
|
/// StringAlignment Near = Left,Center,Far = Right
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[Browsable(true), |
|
|
|
|
|
|
|
Category("Appearance"), |
|
|
|
|
|
|
|
Description("Alignment of Output Near,Center,Far")] |
|
|
|
|
|
|
|
public virtual StringAlignment StringAlignment { |
|
|
|
|
|
|
|
get { |
|
|
|
get { |
|
|
|
return stringAlignment; |
|
|
|
return text; |
|
|
|
} |
|
|
|
} |
|
|
|
set { |
|
|
|
set { |
|
|
|
stringAlignment = value; |
|
|
|
text = value; |
|
|
|
base.NotifyPropertyChanged("StringAligment"); |
|
|
|
base.NotifyPropertyChanged("Text"); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public virtual string Text { |
|
|
|
|
|
|
|
|
|
|
|
[Category("Appearance")] |
|
|
|
|
|
|
|
public StringTrimming StringTrimming { |
|
|
|
get { |
|
|
|
get { |
|
|
|
return text; |
|
|
|
return stringTrimming; |
|
|
|
} |
|
|
|
} |
|
|
|
set { |
|
|
|
set { |
|
|
|
text = value; |
|
|
|
stringTrimming = value; |
|
|
|
base.NotifyPropertyChanged("Text"); |
|
|
|
base.NotifyPropertyChanged("StringTrimming"); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
[Browsable(false)] |
|
|
|
[Category("Appearance")] |
|
|
|
public StringFormat StandartStringFormat { |
|
|
|
public System.Drawing.ContentAlignment ContentAlignment { |
|
|
|
get { |
|
|
|
get { |
|
|
|
return standartStringFormat; |
|
|
|
return this.contentAlignment; |
|
|
|
} |
|
|
|
} |
|
|
|
set { |
|
|
|
set { |
|
|
|
standartStringFormat = value; |
|
|
|
this.contentAlignment = value; |
|
|
|
|
|
|
|
base.NotifyPropertyChanged("ContentAlignment"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[Browsable(false)] |
|
|
|
|
|
|
|
[XmlIgnoreAttribute] |
|
|
|
|
|
|
|
public StringFormat StringFormat { |
|
|
|
|
|
|
|
get { |
|
|
|
|
|
|
|
return this.BuildStringFormat(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|