Я разрабатываю управление переключателем Toggle Switch с помощью CheckBox
, но в настоящее время мой элемент управления только рисует круг. Как я могу рисовать округлые формы, как показано ниже изображений и как я могу изменить расположение окружности на основе значения элемента управлений представляют собой проверенные и непроверенные состояния, как показано ниже изображений:Управление переключателем тумблеров в Windows Forms
Вот мой код:
public class MyCheckBox:CheckBox
{
public MyCheckBox()
{
this.Appearance = System.Windows.Forms.Appearance.Button;
this.BackColor = Color.Transparent;
this.TextAlign = ContentAlignment.MiddleCenter;
this.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.FlatAppearance.BorderColor = Color.RoyalBlue;
this.FlatAppearance.BorderSize = 2;
}
protected override void OnPaint(PaintEventArgs e)
{
this.OnPaintBackground(e);
using (var path = new GraphicsPath())
{
var c = e.Graphics.ClipBounds;
var r = this.ClientRectangle;
r.Inflate(-FlatAppearance.BorderSize, -FlatAppearance.BorderSize);
path.AddEllipse(r);
e.Graphics.SetClip(path);
base.OnPaint(e);
e.Graphics.SetClip(c);
e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
if (this.Checked)
{
using (var p = new Pen(FlatAppearance.BorderColor,
FlatAppearance.BorderSize))
{
e.Graphics.DrawEllipse(p, r);
}
}
}
}
}
Пожалуйста, помогите мне, спасибо заранее.
привет @SurvivalMachine, почему у являются downvoting мой question.if у вас есть сомнения, просто дайте мне знать. –
«Где ошибка в моем коде?» <- Было бы неплохо получить дополнительную информацию, например, как она сломана сейчас и где, по вашему мнению, может быть ошибка. – SurvivalMachine
В настоящее время вопрос содержит достаточно информации с явным описанием проблемы и кодами. Вопрос и ответ - хороший пример для разработчиков WinForms, чтобы показать, как они могут настроить рендеринг флажка, чтобы иметь такой внешний вид. Теперь вопрос более ясен. Я считаю, что его можно возобновить, даже проголосовать. Таким образом, вопрос и ответ будут более полезными для будущих читателей. –