public static ITextStrategy TextGradOutlineLast( Color clrText, Color clrOutline1, Color clrOutline2, int nThickness, GradientType gradType) { TextGradOutlineLastStrategy strat = new TextGradOutlineLastStrategy(); strat.Init(clrText, clrOutline1, clrOutline2, nThickness, gradType); return(strat); }
public ITextStrategy Clone() { TextGradOutlineLastStrategy p = new TextGradOutlineLastStrategy(); if (m_bClrText) { p.Init(m_clrText, m_clrOutline1, m_clrOutline2, m_nThickness, m_GradientType); } else { p.Init(m_brushText, m_clrOutline1, m_clrOutline2, m_nThickness, m_GradientType); } return(p); }
public bool DrawString( CanvasDrawingSession graphics, CanvasTextLayout textLayout, float x, float y) { using (CanvasGeometry geometry = CanvasGeometry.CreateText(textLayout)) { CanvasStrokeStyle stroke = new CanvasStrokeStyle(); stroke.DashStyle = CanvasDashStyle.Solid; stroke.DashCap = CanvasCapStyle.Round; stroke.StartCap = CanvasCapStyle.Round; stroke.EndCap = CanvasCapStyle.Round; stroke.LineJoin = CanvasLineJoin.Round; List <Color> list = new List <Color>(); if (m_GradientType == GradientType.Sinusoid) { TextGradOutlineLastStrategy.CalculateCurvedGradient(m_clrOutline1, m_clrOutline2, m_nThickness, list); } else { TextGradOutlineLastStrategy.CalculateGradient(m_clrOutline1, m_clrOutline2, m_nThickness, list); } for (int i = m_nThickness; i >= 1; --i) { graphics.DrawGeometry(geometry, x, y, list[i - 1], i, stroke); } if (m_bClrText) { graphics.FillGeometry(geometry, x, y, m_clrText); } else { graphics.FillGeometry(geometry, x, y, m_brushText); } } return(true); }