返回首页

C#类创建很酷的箱子,使用Windows窗体: 简介
在Visual Studio中,您可以选择quot;老fashionedquot; Windows窗体,更好看的WPF之间。如果你喜欢工作,但与Windows窗体,您仍然可以使你的应用程序看起来很花哨。在这篇文章中,我将展示创建一些图形部分编程工具。它是一个盒子,可以显示文字或图片有限,但它可能会给你一些灵感,创造出自己的图形对象。

我认为这个代码是不是很困难,如果你曾经使用过的GDI。梳洗:如果图像是一幅画,然后一个Bitmap是油漆的帆布,图形是你的画笔(艺术家,当然是你)

的类GraphicTools能够创造箱就像在这张照片上,左一:
{S0的}
使用的codeParameters,包括图像耸立,你想画的框,方框内的文字框的位置和大小,宽度(此处为16)的边界,并最终四种颜色,你要使用。 (此功能是一个非常类似的一个图像放在盒中的重载)

public static Image DrawBox(this Image image, string text, Point p, Size size, int border,

            Color foreColor, Color backColor, Color fillColor, Color textColor)

        {

            // Draw the borders

            image.CreateBorders(p, size, border, foreColor, backColor);



            // Fill the inside and add the text

            using (var g = Graphics.FromImage(image))

            {

                g.FillRectangle(new SolidBrush(fillColor),

                    new Rectangle(p.X + border, p.Y + border, size.Width 

                        - (2 * border), size.Height - (2 * border)));



                StringFormat stringFormat = new StringFormat();



                // Horizontal alignment

                stringFormat.Alignment = StringAlignment.Center;



                // Vertical alignment

                stringFormat.LineAlignment = StringAlignment.Center;    

                g.DrawString(text, new Font("Arial", 10, FontStyle.Bold),

                    new SolidBrush(textColor), p.X + (size.Width / 2), 

                    p.Y + (size.Height / 2), stringFormat);

            }



            return image;

        }




他最重要的是建立边界。四角片创建使用渐变填充圆(前景色在中间,在外面的BackColor){C}
这个圈子里的每个象限形成盒子的角落之一,所以在CreateBorders函数,我们可以用途:
private static Image CreateBorders(this Image image, Point p, Size size, 

            int border, Color foreColor, Color backColor)

        {

            // Draw the corners

            Image cornerBox = CornerBox(border, foreColor, backColor);

            image.Merge(p, cornerBox,

                new Rectangle(0, 0, border, border));            // Left Top

            image.Merge(new Point(p.X + size.Width - border, p.Y), cornerBox,

                new Rectangle(border, 0, border, border));       // Right Top

            image.Merge(new Point(p.X, p.Y + size.Height - border), cornerBox,

                new Rectangle(0, border, border, border));       // Left Bottom

            image.Merge(new Point(p.X + size.Width - border, 

                p.Y + size.Height - border), cornerBox,

                new Rectangle(border, border, border, border));  // Right Bottom   

的盒子也包含四个长方形块,所以此功能继续:{体C3}
框的不同部位的创建方式看起来有点怪,而不是立即在图纸上盒的形象,创建较小的图像,然后用框的形象借鉴和合并。这是因为的LinearGradientBrush的行为:它不会开始的地方开始绘制的第一个颜色,但在你画的形象耸立的开始。这似乎是最实际的解决办法,但我承认它可能不是最优雅的

有两个而不是技术的功能使用。的createImage,创造一定规模的形象,创造了该尺寸的位图(作为图像实际上是一个抽象类)。和合并,这使包装盒上的小部分图像。您可以在下载的过程中找到的。
的结果确实是看中这篇文章的标题预测?好,让一个小的应用程序,创建一个视觉的spidergraph表示。我犯了一个动物类(原​​),与动物的名称和图片作为领域。让填写的动物名单:{C4的}
"Tigerquot;这里是我的主要演员,其他都是他的朋友。我想每个被包含图片方块和小方块,它的名字所代表的动物。 {碳五}
"; Tigerquot;是在中间,与每个朋友的连接。我们画上一个PictureBox:{5233}
,在这个美丽的友谊结果:
{S1}景点
我学习的东西,而对大型猫科动物的例子。历史
第一个版本。

回答

评论会员:O 时间:2