コード例 #1
0
        static Pen GetPen(Generator generator, Color color, float thickness = 1f, DashStyle dashStyle = null)
        {
            var cache = generator.Cache <PenKey, Pen> (cacheKey);
            Pen pen;

            lock (cache) {
                var key = new PenKey(color.ToArgb(), thickness, dashStyle);
                if (!cache.TryGetValue(key, out pen))
                {
                    pen = new Pen(color, thickness, generator);
                    if (dashStyle != null)
                    {
                        pen.DashStyle = dashStyle;
                    }
                    cache.Add(key, pen);
                }
            }
            return(pen);
        }
コード例 #2
0
 /// <summary>
 /// Gets a cached pen with the specified <paramref name="color"/> and <paramref name="thickness"/>
 /// </summary>
 /// <param name="color">Color of the cached pen to get</param>
 /// <param name="thickness">Thickness of the cached pen to get</param>
 /// <param name="dashStyle">Dash Style for the pen</param>
 /// <param name="generator">Generator to get the cached pen for</param>
 public static Pen Cached(Color color, float thickness = 1f, DashStyle dashStyle = null, Generator generator = null)
 {
     return(GetPen(generator, color, thickness, dashStyle));
 }
コード例 #3
0
ファイル: Pens.cs プロジェクト: daddycoding/Eto
 public static Pen Cached(Color color, float thickness, DashStyle dashStyle, Generator generator)
 {
     return(GetPen(color, thickness, dashStyle));
 }