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(); }
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); } }
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); } }