private StringFormat _getGDIStringFormat()
{
StringFormat sf = new StringFormat();
bool doAlign = true;
if(this is SvgTSpanElement || this is SvgTRefElement)
{
SvgTextPositioningElement posElement = (SvgTextPositioningElement) this;
if(posElement.X.AnimVal.NumberOfItems == 0) doAlign = false;
}
if(doAlign)
{
string anchor = GetPropertyValue("text-anchor");
if(anchor == "middle") sf.Alignment = StringAlignment.Center;
if(anchor == "end") sf.Alignment = StringAlignment.Far;
}
string dir = GetPropertyValue("direction");
if(dir == "rtl")
{
if(sf.Alignment == StringAlignment.Far)sf.Alignment = StringAlignment.Near;
else if(sf.Alignment == StringAlignment.Near)sf.Alignment = StringAlignment.Far;
sf.FormatFlags = StringFormatFlags.DirectionRightToLeft;
}
dir = GetPropertyValue("writing-mode");
if(dir == "tb")
{
sf.FormatFlags = sf.FormatFlags | StringFormatFlags.DirectionVertical;
}
sf.FormatFlags = sf.FormatFlags | StringFormatFlags.MeasureTrailingSpaces;
return sf;
}