Как изменить форму? - PullRequest
       24

Как изменить форму?

2 голосов
/ 18 января 2010

У меня есть форма в приложении, разработанном с использованием C #. В этой форме я создал графическую форму (круг). Во время выполнения я хочу, чтобы моя форма тоже была только этой формы. То есть я хочу отображать только эту графику, а не фон или строку заголовка или что-то еще. Я хочу отображать только эту графику. Но дело в том, что я не могу формировать свою форму. В качестве пользовательского элемента управления у меня есть графический элемент управления, который я добавил в свою форму.

Ответы [ 3 ]

3 голосов
/ 18 января 2010

Я подозреваю, что вы пытаетесь создать эффект, похожий на заставку. Это не очень сложно сделать. Вот хороший учебник , с которого можно начать.

Хитрость заключается в том, чтобы установить ключ прозрачности формы в цвет, который вы хотите сделать прозрачным (в данном случае, все , кроме вашего круга. Кроме того, вам нужно установить форму без полей .


Кроме того, вы можете отредактировать свой вопрос, добавив некоторую информацию о , почему вы хотите сделать это - мне интересно, какова ваша цель с точки зрения пользовательского опыта.

2 голосов
/ 18 января 2010

Если вы хотите круглую форму, вы можете поместить следующий код в обработчик события загрузки формы:

System.Drawing.Drawing2D.GraphicsPath myPath = new  System.Drawing.Drawing2D.GraphicsPath();
//this line of code adds an ellipse to the graphics path that inscribes
//the rectangle defined by the form's width and height
myPath.AddEllipse(0,0,this.Width,this.Height);
//creates a new region from the GraphicsPath
Region myRegion = new Region(myPath);
this.Region = myRegion;

и затем установите для свойства FormBorderStyle формы значение Нет.

2 голосов
/ 18 января 2010

Вы также можете проверить MSDN для свойства Region. Вы можете использовать объекты System.Drawing, чтобы нарисовать любую фигуру, какую захотите, затем установить свойство регионов Region до того, как оно будет показано, и оно примет любую форму, которую вы ей придадите ... Вот короткий пример:

http://www.vcskicks.com/custom_shape_form_region.php

...