Exemple #1
0
 private void chkTextAttribute_CheckedChanged(object sender, EventArgs e)
 {
     if (chkTextAttribute.Checked)
     {
         using (XmlFile xml = new XmlFile("MPWidgetTest.xml", "test")) {
             MPAttribute style = new MPAttribute(xml.Root);
             mpText1.TextAttribute   = new MPAttribute(xml.GetSubRoot("text"), style);
             mpButton1.TextAttribute = new MPAttribute(xml.GetSubRoot("button"), style);
         }
     }
     else
     {
         mpText1.TextAttribute   = null;
         mpButton1.TextAttribute = null;
     }
     mpText1.Invalidate();
     mpButton1.Invalidate();
 }
Exemple #2
0
    private void DrawTextTestForm_Paint(object sender, PaintEventArgs e) {
        Graphics g = e.Graphics;
        // グリッド描画
        using(Pen pen = new Pen(Color.White, 1.0F)) {
            for(int i = ClientRectangle.X; i < ClientRectangle.Width; i += 20) {
                g.DrawLine(pen, i, 0, i, ClientRectangle.Height);
            }
            for(int j = ClientRectangle.Y; j < ClientRectangle.Height; j += 20) {
                g.DrawLine(pen, 0, j, ClientRectangle.Width, j);
            }
        }

        g.SmoothingMode = SmoothingMode.AntiAlias;

        // DrawTextのテスト
        string[] text = new string[]{
            "Hello",
            "こんにちわみなさん",
            "Hola!"};
        Rectangle rect = new Rectangle(20, 20, 200, 200);
        using(Pen pen = new Pen(Color.Red, 1F)) {
            g.DrawRectangle(pen, rect);
        }
        using(Pen pen = new Pen(Color.Red, 2.0F))
        using(Brush brush = new SolidBrush(Color.Blue))
        using(Font font = new Font("メイリオ", 20.0F)) {
            rect = g.DrawText(text, font, pen, brush, rect, TextHPosition.Left, TextVPosition.Top);
        }
        using(Pen pen = new Pen(Color.Green, 1F)) {
            g.DrawRectangle(pen, rect);
        }
        
        rect = new Rectangle(240, 20, 200, 200);
        using(Pen pen = new Pen(Color.Red, 1F)) {
            g.DrawRectangle(pen, rect);
        }
        using(Pen pen = new Pen(Color.Red, 2.0F))
        using(Brush brush = new SolidBrush(Color.Blue))
        using(Font font = new Font("メイリオ", 20.0F)) {
            rect = g.DrawText(text, font, pen, brush, rect, TextHPosition.Center, TextVPosition.Middle);
        }
        using(Pen pen = new Pen(Color.Green, 1F)) {
            g.DrawRectangle(pen, rect);
        }
        
        rect = new Rectangle(460, 20, 200, 200);
        using(Pen pen = new Pen(Color.Red, 1F)) {
            g.DrawRectangle(pen, rect);
        }
        using(Pen pen = new Pen(Color.Red, 2.0F))
        using(Brush brush = new SolidBrush(Color.Blue))
        using(Font font = new Font("メイリオ", 20.0F)) {
            rect = g.DrawText(text, font, pen, brush, rect, TextHPosition.Right, TextVPosition.Bottom);
        }
        using(Pen pen = new Pen(Color.Green, 1F)) {
            g.DrawRectangle(pen, rect);
        }
        
        // DrawTextのテスト(Fit, Shrink)
        rect = new Rectangle(20, 300, 200, 200);
        using(Pen pen = new Pen(Color.Red, 1F)) {
            g.DrawRectangle(pen, rect);
        }
        using(Pen pen = new Pen(Color.Red, 2.0F))
        using(Brush brush = new SolidBrush(Color.Blue))
        using(Font font = new Font("メイリオ", 20.0F)) {
            rect = g.DrawText(text, font, pen, brush, rect, TextHPosition.LeftShrink, TextVPosition.Middle);
        }
        using(Pen pen = new Pen(Color.Green, 1F)) {
            g.DrawRectangle(pen, rect);
        }
        
        rect = new Rectangle(240, 300, 200, 200);
        using(Pen pen = new Pen(Color.Red, 1F)) {
            g.DrawRectangle(pen, rect);
        }
        using(Pen pen = new Pen(Color.Red, 2.0F))
        using(Brush brush = new SolidBrush(Color.Blue))
        using(Font font = new Font("メイリオ", 20.0F)) {
            rect = g.DrawText(text, font, pen, brush, rect, TextHPosition.CenterShrink, TextVPosition.Fit);
        }
        using(Pen pen = new Pen(Color.Green, 1F)) {
            g.DrawRectangle(pen, rect);
        }

        rect = new Rectangle(460, 300, 200, 200);
        using(Pen pen = new Pen(Color.Red, 1F)) {
            g.DrawRectangle(pen, rect);
        }
        using(Pen pen = new Pen(Color.Red, 2.0F))
        using(Brush brush = new SolidBrush(Color.Blue))
        using(Font font = new Font("メイリオ", 20.0F)) {
            rect = g.DrawText(text, font, pen, brush, rect, TextHPosition.RightShrink, TextVPosition.Proportional);
        }
        using(Pen pen = new Pen(Color.Green, 1F)) {
            g.DrawRectangle(pen, rect);
        }

        // 属性指定文字列描画のテスト
        XmlFile xml = new XmlFile("DrawTextTest.xml", "test");
        MPAttribute style = new MPAttribute(xml.Root);

        XmlElement elem = xml.GetSubRoot("text1");
        MPAttribute attr = new MPAttribute(elem, style);
        string xtext = elem.InnerXml.Trim();
        rect = new Rectangle(20, 560, 200, 200);
        using(Pen pen = new Pen(Color.Red, 1F)) {
            g.DrawRectangle(pen, rect);
        }
        rect = g.DrawText(xtext, attr, rect);
        using(Pen pen = new Pen(Color.Green, 1F)) {
            g.DrawRectangle(pen, rect);
        }
        
        elem = xml.GetSubRoot("text2");
        attr = new MPAttribute(elem, style);
        xtext = elem.InnerXml.Trim();
        rect = new Rectangle(240, 560, 200, 200);
        using(Pen pen = new Pen(Color.Red, 1F)) {
            g.DrawRectangle(pen, rect);
        }
        rect = g.DrawText(xtext, attr, rect);
        using(Pen pen = new Pen(Color.Green, 1F)) {
            g.DrawRectangle(pen, rect);
        }

        elem = xml.GetSubRoot("text3");
        attr = new MPAttribute(elem, style);
        xtext = elem.InnerXml.Trim();
        rect = new Rectangle(460, 560, 200, 200);
        using(Pen pen = new Pen(Color.Red, 1F)) {
            g.DrawRectangle(pen, rect);
        }
        rect = g.DrawText(xtext, attr,rect);
        using(Pen pen = new Pen(Color.Green, 1F)) {
            g.DrawRectangle(pen, rect);
        }

        xml.Dispose();

        // 影付き文字のテスト
        rect = new Rectangle(680, 20, 0, 0);
        using(Pen pen = new Pen(Color.Red, 2.0F))
        using(Brush brush = new SolidBrush(Color.Blue))
        using(Brush shadow = new SolidBrush(ColorUtil.Get("hsva(0,1,0,0.3)")))
        using(Font font = new Font("メイリオ", 20.0F)) {
            rect = g.DrawText(text, font, pen, brush, rect, TextHPosition.Left, TextVPosition.Top, shadow:shadow);
        }
        rect = new Rectangle(680, 140, 0, 0);
        using(Pen pen = new Pen(Color.Red, 2.0F))
        using(Brush brush = new SolidBrush(Color.Blue))
        using(Brush shadow = new SolidBrush(ColorUtil.Get("hsva(0,1,0,0.3)")))
        using(Font font = new Font("メイリオ", 20.0F)) {
            rect = g.DrawText(text, font, pen, brush, rect, TextHPosition.Left, TextVPosition.Top, shadow:shadow, fontRatio:0.5F);
        }
        rect = new Rectangle(680, 260, 0, 0);
        using(Brush brush = new SolidBrush(Color.White))
        using(Brush shadow = new SolidBrush(ColorUtil.Get("hsv(0,0.5,1)")))
        using(Font font = new Font("メイリオ", 20.0F)) {
            rect = g.DrawText(text, font, null, brush, rect, TextHPosition.Left, TextVPosition.Top, shadow:shadow, shadowOffsetX:0F, shadowOffsetY:0F, shadowWidth:5F);
        }
        
    }
Exemple #3
0
    private void GraphicsExtensionsTestForm_Paint(object sender, PaintEventArgs e)
    {
        Graphics g = e.Graphics;

        // グリッド描画
        using (Pen pen = new Pen(Color.White, 1.0F)) {
            for (int i = ClientRectangle.X; i < ClientRectangle.Width; i += 20)
            {
                g.DrawLine(pen, i, 0, i, ClientRectangle.Height);
            }
            for (int j = ClientRectangle.Y; j < ClientRectangle.Height; j += 20)
            {
                g.DrawLine(pen, 0, j, ClientRectangle.Width, j);
            }
        }

        g.SmoothingMode = SmoothingMode.AntiAlias;

        // 角丸四角形描画
        for (int i = 0; i <= 200; i += 20)
        {
            using (Pen pen = new Pen(Color.Green, 1.0F + (float)i / 20.0F)) {
                g.DrawRoundRectangle(pen, i, i, 200 - i * 2, 200 - i * 2, (float)(200 - i) / 10F);
            }
        }

        // 内接四角形描画
        for (int i = 0; i <= 200; i += 20)
        {
            using (Pen pen = new Pen(Color.Red, 1.0F + (float)i / 20.0F)) {
                g.DrawInnerRectangle(pen, 220 + i, i, 200 - i * 2, 200 - i * 2);
            }
        }

        // 内接角丸四角形描画
        for (int i = 0; i <= 200; i += 20)
        {
            using (Pen pen = new Pen(Color.Blue, 1.0F + (float)i / 20.0F)) {
                g.DrawInnerRoundRectangle(pen, 440 + i, i, 200 - i * 2, 200 - i * 2, (float)(200 - i) / 10F);
            }
        }

        // 外接四角形描画
        for (int i = 0; i <= 200; i += 20)
        {
            using (Pen pen = new Pen(Color.Red, 1.0F + (float)i / 20.0F)) {
                g.DrawOuterRectangle(pen, 660 + i, i, 200 - i * 2, 200 - i * 2);
            }
        }

        // DrawRoundRectangle
        using (Pen pen = new Pen(Color.Green, 5.0F)) {
            g.DrawRoundRectangle(pen, 20, 240, 40, 40, 10F);
        }
        // FillRoundRectangle
        using (Brush brush = new SolidBrush(Color.Blue)) {
            g.FillRoundRectangle(brush, 80, 240, 40, 40, 10F);
        }
        // DrawAndFillRoundRectangle
        using (Pen pen = new Pen(Color.Green, 5.0F))
            using (Brush brush = new SolidBrush(Color.Blue)) {
                g.DrawAndFillRoundRectangle(pen, brush, 140, 240, 40, 40, 10F);
            }

        // 4辺独立ペン長方形描画
        using (Pen top = new Pen(Color.Red, 5F))
            using (Pen right = new Pen(Color.Green, 10F))
                using (Pen bottom = new Pen(Color.Blue, 15F))
                    using (Pen left = new Pen(Color.Black, 20F)) {
                        g.DrawRectangle(top, right, bottom, left, 240, 240, 40, 40);
                        g.DrawInnerRectangle(top, right, bottom, left, 320, 240, 40, 40);
                        g.DrawOuterRectangle(top, right, bottom, left, 400, 240, 40, 40);
                    }

        // ボタン描画
        using (Font font = new Font("メイリオ", 18F))
            using (ButtonFace buttonFace = new ButtonFace(font, ColorUtil.Get("hsv(30,1,1)")))
                using (ButtonFace pushFace = buttonFace.MakePushedFace()) {
                    string[] buttonText = new string[] { "ボタン", "サンプル" };
                    g.DrawButton(new Rectangle(20, 380, 200, 80), 20F, buttonText, buttonFace);
                    g.DrawButton(new Rectangle(240, 380, 200, 80), 20F, buttonText, pushFace);
                }
        using (Font font = new Font("メイリオ", 24F))
            using (ButtonFace buttonFace = new ButtonFace(font, ColorUtil.Get("hsv(130,0.8,0.6)"), 8F))
                using (ButtonFace pushFace = buttonFace.MakePushedFace())
                    using (ButtonFace disabledFace = buttonFace.MakeDisabledFace()) {
                        string[] buttonText = new string[] { "長いボタン名のサンプル" };
                        g.DrawButton(new Rectangle(460, 380, 160, 80), 1F, buttonText, buttonFace);
                        g.DrawButton(new Rectangle(640, 380, 160, 80), 10F, buttonText, pushFace);
                        g.DrawButton(new Rectangle(820, 380, 160, 80), 100F, buttonText, disabledFace);
                    }

        // 属性指定文字ボタン
        XmlFile     xml   = new XmlFile("DrawTextTest.xml", "test");
        MPAttribute style = new MPAttribute(xml.Root);

        using (ButtonFace buttonFace = new ButtonFace(ColorUtil.Get("hsv(130,1,1)"))) {
            XmlElement  elem       = xml.GetSubRoot("text1");
            MPAttribute attr       = new MPAttribute(elem, style);
            string      buttonText = elem.InnerXml;
            g.DrawButton(new Rectangle(20, 480, 200, 150), 40F, buttonText, attr, buttonFace);
            elem       = xml.GetSubRoot("text2");
            attr       = new MPAttribute(elem, style);
            buttonText = elem.InnerXml;
            g.DrawButton(new Rectangle(240, 480, 200, 150), 40F, buttonText, attr, buttonFace);
            elem       = xml.GetSubRoot("text3");
            attr       = new MPAttribute(elem, style);
            buttonText = elem.InnerXml;
            g.DrawButton(new Rectangle(460, 480, 200, 150), 40F, buttonText, attr, buttonFace);
        }
    }