2017-02-16 5 views
2

Как нарисовать круг вокруг метки?C# рисовать круг вокруг метки

Прямо сейчас я попытался это:

public void drawUseCase(int width, int height, UseCase useCase) 
{ 
    Label lbUseCase = new Label(); 
    Graphics g = lbUseCase.CreateGraphics(); 
    Pen p = new Pen(Color.Black, 1); 
    g.DrawEllipse(p, width, height, 200, 200); 
    lbUseCase.Location = new System.Drawing.Point(width, height); 
    lbUseCase.Text = useCase.name; 
    mainPanel.Controls.Add(lbUseCase); 
} 

Но это не работает. Есть идеи?

Это в winforms. Поскольку «это не работает», я имею в виду, что появляется только ярлык, но нет круга или чего-то подобного.

+2

Это Windows Phone 7? 8, 10? ASP.NET, MVC? Формы? –

+1

«Но это не работает», что не работает? Как это не работает? Какую неожиданную вещь вы видите? Ошибка? Крушение? –

+1

@CasparKleijne Да. Это defienitevly - MVC ... Этот код ясно показывает, что это WinForms ... –

ответ

4

Попробуйте это:

private void Form1_Load(object sender, EventArgs e) 
{ 
    Label Label = new Label(); 
    Label.Location = new System.Drawing.Point(50, 50); 
    Label.Width = 50; 
    Label.Height = 50; 
    Label.Name = "lblTest"; 
    Label.Text = "test"; 
    this.Controls.Add(Label); 
} 

private void Form1_Paint(object sender, PaintEventArgs e) 
{ 
    var lbl = this.Controls.Find("lblTest",true); // find label with name 

    foreach (var item in lbl) 
    // there can be multiple lblTest with same name so I used foreach (this is optional btw you can remove it) 
    { 
     Label tempLabel = item as Label; 
     System.Drawing.SolidBrush myBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Red); 
     System.Drawing.Pen myPen = new Pen(myBrush, 2); 
     e.Graphics.DrawEllipse(myPen, new System.Drawing.Rectangle(tempLabel.Location.X - (tempLabel.Width/2), 
     tempLabel.Location.Y - (tempLabel.Height/2) , tempLabel.Width + 40, tempLabel.Height + 40)); 
     myBrush.Dispose(); 
     myPen.Dispose(); 
    } 
} 

Результат: enter image description here

Надежда помогает.

+1

Не забудьте убрать свои кисти ('using'!) –

+0

@PatrickHofman Спасибо, обновлено :) – Berkay

+1

Почему анимация? Не могли бы вы сделать скриншот? – krlzlx

Смежные вопросы