public void Apply(swm.FormattedText control) { control.SetFontFamily(WpfFamily); control.SetFontStyle(WpfFontStyle); control.SetFontStretch(WpfFontStretch); control.SetFontWeight(WpfFontWeight); control.SetFontSize(WpfSize); control.SetTextDecorations(WpfTextDecorationsFrozen); }
void ApplyFont() { var f = (FontData)Toolkit.GetBackend(Font); FormattedText.SetFontFamily(f.Family); FormattedText.SetFontSize(f.GetDeviceIndependentPixelSize()); FormattedText.SetFontStretch(f.Stretch); FormattedText.SetFontStyle(f.Style); FormattedText.SetFontWeight(f.Weight); }
// https://social.msdn.microsoft.com/Forums/sharepoint/en-US/6cd49173-b06d-4749-85aa-f6ab46c7d4af/wpf-rich-text-box-width-size-adjust-to-text?forum=wpf public static swm.FormattedText GetFormattedText(this swd.FlowDocument doc) { if (doc == null) { throw new ArgumentNullException("doc"); } var runsAndParagraphs = GetRunsAndParagraphs(doc).ToList(); var output = new swm.FormattedText( GetText(runsAndParagraphs), CultureInfo.CurrentCulture, doc.FlowDirection, new swm.Typeface(doc.FontFamily, doc.FontStyle, doc.FontWeight, doc.FontStretch), doc.FontSize, doc.Foreground, null, swm.TextOptions.GetTextFormattingMode(doc)); int offset = 0; foreach (var el in runsAndParagraphs) { var run = el as swd.Run; if (run != null) { int count = run.Text.Length; output.SetFontFamily(run.FontFamily, offset, count); output.SetFontStyle(run.FontStyle, offset, count); output.SetFontWeight(run.FontWeight, offset, count); output.SetFontSize(run.FontSize, offset, count); output.SetForegroundBrush(run.Foreground, offset, count); output.SetFontStretch(run.FontStretch, offset, count); output.SetTextDecorations(run.TextDecorations, offset, count); offset += count; continue; } offset += Environment.NewLine.Length; } return(output); }
public static FormattedText GetFormattedText(this FlowDocument doc) { if (doc == null) { throw new ArgumentNullException("doc"); } FormattedText output = new FormattedText( GetText(doc), CultureInfo.CurrentCulture, doc.FlowDirection, new Typeface(doc.FontFamily, doc.FontStyle, doc.FontWeight, doc.FontStretch), doc.FontSize, doc.Foreground); int offset = 0; foreach (TextElement el in GetRunsAndParagraphs(doc)) { Run run = el as Run; if (run != null) { int count = run.Text.Length; output.SetFontFamily(run.FontFamily, offset, count); output.SetFontStyle(run.FontStyle, offset, count); output.SetFontWeight(run.FontWeight, offset, count); output.SetFontSize(run.FontSize, offset, count); output.SetForegroundBrush(run.Foreground, offset, count); output.SetFontStretch(run.FontStretch, offset, count); output.SetTextDecorations(run.TextDecorations, offset, count); offset += count; } else { offset += Environment.NewLine.Length; } } return output; }
private static FormattedText GetFormattedText(FlowDocument doc) { var output = new FormattedText( GetText(doc), CultureInfo.CurrentCulture, doc.FlowDirection, new Typeface(doc.FontFamily, doc.FontStyle, doc.FontWeight, doc.FontStretch), doc.FontSize, doc.Foreground); int offset = 0; foreach (TextElement textElement in GetRunsAndParagraphs(doc)) { var run = textElement as Run; if (run != null) { int count = run.Text.Length; output.SetFontFamily(run.FontFamily, offset, count); output.SetFontSize(run.FontSize, offset, count); output.SetFontStretch(run.FontStretch, offset, count); output.SetFontStyle(run.FontStyle, offset, count); output.SetFontWeight(run.FontWeight, offset, count); output.SetForegroundBrush(run.Foreground, offset, count); output.SetTextDecorations(run.TextDecorations, offset, count); offset += count; } else { offset += Environment.NewLine.Length; } } return output; }
public void setStyle(CharDisplayInfo fs, int count, FormattedText ft) { if ((fs.Style & (int)ZStyles.BOLDFACE_STYLE) > 0) { ft.SetFontWeight(FontWeights.Bold); } if ((fs.Style & (int)ZStyles.REVERSE_STYLE) > 0) { ft.SetFontWeight(FontWeights.Bold); ft.SetForegroundBrush(ZColorCheck.ZColorToBrush(fs.BackgroundColor, ColorType.Background)); } else { ft.SetForegroundBrush(ZColorCheck.ZColorToBrush(fs.ForegroundColor, ColorType.Foreground)); } if ((fs.Style & (int)ZStyles.EMPHASIS_STYLE) > 0) { ft.SetFontStyle(FontStyles.Italic); } if ((fs.Style & (int)ZStyles.FIXED_WIDTH_STYLE) > 0) { ft.SetFontFamily(_fixedFont.Family); } }
public void setStyle(CharDisplayInfo fs, FontChanges fc, FormattedText ft, DrawingContext dc) { int startPos = fc.Offset + fc.StartCol; if ((fs.Style & (int)ZStyles.BOLDFACE_STYLE) > 0) { ft.SetFontWeight(FontWeights.Bold, startPos, fc.Count); } int rectColor = -1; ColorType type = ColorType.Foreground; if ((fs.Style & (int)ZStyles.REVERSE_STYLE) > 0) { ft.SetFontWeight(FontWeights.Bold, startPos, fc.Count); ft.SetForegroundBrush(ZColorCheck.ZColorToBrush(fs.BackgroundColor, ColorType.Background), startPos, fc.Count); rectColor = fs.ForegroundColor; } else { ft.SetForegroundBrush(ZColorCheck.ZColorToBrush(fs.ForegroundColor, ColorType.Foreground), startPos, fc.Count); if (fs.BackgroundColor > 1 && fs.BackgroundColor != bColor) { rectColor = fs.BackgroundColor; type = ColorType.Background; } } if ((fs.Style & (int)ZStyles.EMPHASIS_STYLE) > 0) { ft.SetFontStyle(FontStyles.Italic, startPos, fc.Count); } if ((fs.Style & (int)ZStyles.FIXED_WIDTH_STYLE) > 0) { ft.SetFontFamily(_fixedFont.Family, startPos, fc.Count); } if (dc != null && rectColor != -1) { Brush b = ZColorCheck.ZColorToBrush(rectColor, type); dc.DrawRectangle(b, null, new Rect(fc.StartCol * charWidth, fc.Line * charHeight, fc.Count * charWidth, charHeight)); } }