当前位置: 首页>>代码示例>>C#>>正文


C# IGraphics.GetFontMetrics方法代码示例

本文整理汇总了C#中IGraphics.GetFontMetrics方法的典型用法代码示例。如果您正苦于以下问题:C# IGraphics.GetFontMetrics方法的具体用法?C# IGraphics.GetFontMetrics怎么用?C# IGraphics.GetFontMetrics使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IGraphics的用法示例。


在下文中一共展示了IGraphics.GetFontMetrics方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Draw

        public void Draw(IGraphics g)
        {
            if (Font != null) {
                g.SetFont (Font);
            }
            g.SetColor (Colors.Gray);
            var border = Frame;
            border.Y += PaddingTop;
            border.Height -= PaddingTop + PaddingBottom;

            border.Inflate (-1, -1);
            g.DrawRoundedRect (border, 5, 1);

            var inner = border;
            inner.Inflate (-2, -2);

            if (Checked) {
                g.FillRoundedRect (inner, 3);
                g.SetColor (Colors.Black);
            }

            if (!string.IsNullOrEmpty (Title)) {
                var fm = g.GetFontMetrics ();
                var sw = fm.StringWidth (Title);

                g.DrawString (Title, inner.X + (inner.Width - sw)/2, inner.Y + (inner.Height - fm.Height)/2);
            }
        }
开发者ID:Clancey,项目名称:CrossGraphics,代码行数:28,代码来源:Canvas.cs

示例2: Draw

        public void Draw(IGraphics g)
        {
            g.BeginEntity (this);

            var now = DateTime.Now;

            var r = Math.Min (Width / 2, Height / 2);
            var center = new System.Drawing.PointF (Width / 2, Height / 2);

            //
            // Draw the face
            //
            g.SetColor (BackColor);
            g.FillOval (center.X - r, center.Y - r, 2 * r, 2 * r);
            g.SetColor (BorderColor);
            g.DrawOval (center.X - r + 4, center.Y - r + 4, 2 * r - 8, 2 * r - 8, 8);

            g.SetColor (FaceColor);
            for (var i = 0; i < 12; i++) {
                var angle = (i / 12.0) * 2 * Math.PI;
                g.DrawLine (
                    center.X + 0.75f * r * (float)Math.Cos (angle),
                    center.Y + 0.75f * r * (float)Math.Sin (angle),
                    center.X + 0.9f * r * (float)Math.Cos (angle),
                    center.Y + 0.9f * r * (float)Math.Sin (angle),
                    7);
            }
            g.SetFont (LabelFont);
            var textWidth = g.GetFontMetrics ().StringWidth ("Cross Graphics");
            g.DrawString ("Cross Graphics", center.X - textWidth / 2, center.Y + 0.25f * r);

            //
            // Draw the hour hand
            //
            g.SetColor (Colors.DarkGray);
            var h = now.Hour + now.Minute / 60.0;
            var hAngle = h > 12 ?
                ((h - 12) / 12.0 * 2 * Math.PI - Math.PI /2) :
                (h / 12.0 * 2 * Math.PI - Math.PI / 2);
            g.DrawLine (
                center.X + -0.1f * r * (float)Math.Cos (hAngle),
                center.Y + -0.1f * r * (float)Math.Sin (hAngle),
                center.X + 0.65f * r * (float)Math.Cos (hAngle),
                center.Y + 0.65f * r * (float)Math.Sin (hAngle),
                7);

            //
            // Draw the minute hand
            //
            g.SetColor (Colors.DarkGray);
            var m = now.Minute + now.Second / 60.0;
            var mAngle = (m / 60.0) * 2 * Math.PI - Math.PI / 2;
            g.DrawLine (
                center.X + -0.15f * r * (float)Math.Cos (mAngle),
                center.Y + -0.15f * r * (float)Math.Sin (mAngle),
                center.X + 0.85f * r * (float)Math.Cos (mAngle),
                center.Y + 0.85f * r * (float)Math.Sin (mAngle),
                5);

            //
            // Draw the second hand
            //
            g.SetColor (Colors.Red);
            var sAngle = (now.Second / 60.0) * 2 * Math.PI - Math.PI / 2;
            g.DrawLine (
                center.X + -0.15f * r * (float)Math.Cos (sAngle),
                center.Y + -0.15f * r * (float)Math.Sin (sAngle),
                center.X + 0.85f * r * (float)Math.Cos (sAngle),
                center.Y + 0.85f * r * (float)Math.Sin (sAngle),
                1);

            //
            // Draw the pin
            //
            g.SetColor (Colors.Black);
            g.FillOval (center.X - 5, center.Y - 5, 10, 10);
        }
开发者ID:JoeStrout,项目名称:CrossGraphics,代码行数:77,代码来源:Clock.cs


注:本文中的IGraphics.GetFontMetrics方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。