Is there any way of creating a non rectangular window form, such as circle or ellipse, in c# or .net?
I saw these unique windows form shapes and they look really neat in several installations I've seen.
Also, is there any disadvantage in using this kind of design for non standard forms, such as sustainability, crashes, etc.?
Form has Region property and you can assign there any shape that you create.
For example to create oval form you can use this code in Form1_Load()
method of form:
var path = new GraphicsPath();
path.AddEllipse(0, 0, Width, Height);
Region = new Region(path);
The risk is that when you create non-rectangular form and close, minimalize buttons are cut off by region then some of end-users could have problems with closing your application.
I worked with something like that. You can override the OnPaint
method. Something like this:
protected override void OnPaint( System.Windows.Forms.PaintEventArgs e )
{
GraphicsPath wantedshape = new GraphicsPath();
wantedshape.AddEllipse(0, 0, this.Width, this.Height);
this.Region = new Region(wantedshape);
}
And set the FormBorderStyle
property to FormBorderStyle.None
.
And there is no risk to use non standard forms. Just create an application that your users want. :)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With