Имитировать поведение TextImageRelation в пользовательской кнопке - PullRequest
0 голосов
/ 18 мая 2018

Я хочу создать пользовательскую кнопку в WinForms, используя GDI +.Я наследую от System.Windows.Forms.Button и переопределяю метод OnPaint для визуализации пользовательской кнопки.

Я хочу отображать изображения и текст так же, как это делает оригинал System.Windows.Forms.Button, включая способность соблюдать * 1006Свойства *, TextAlign и ImageAlign.

Как мне поступить?Уже есть встроенный способ сделать это?

1 Ответ

0 голосов
/ 18 мая 2018

В зависимости от того, что вы хотите, вам может понадобиться заново создать кнопку логики для рисования.

Для выполнения задачи вам понадобится использовать методы Graphics.

public class FirstControl : Control{  
   public FirstControl() {}  
   protected override void OnPaint(PaintEventArgs e) {  
      // Call the OnPaint method of the base class.  
      base.OnPaint(e);  
      // Call methods of the System.Drawing.Graphics object.  
      e.Graphics.DrawString(Text, Font, new SolidBrush(ForeColor), ClientRectangle);  
   }   
}   

Вам может понадобиться измерить строку: https://msdn.microsoft.com/en-us/library/6xe5hazb(v=vs.110).aspx

Также есть это: https://msdn.microsoft.com/en-us/library/system.windows.forms.buttonrenderer(v=vs.110).aspx

...