TextRenderer.DrawText应用填充

时间:2019-03-26 04:32:19

标签: vb.net padding gdi

我有一个自定义控件,我正在使用TextRenderer.DrawText绘制控件的文本,这就是OnPaint事件的样子:

function replaceChar(char, str) {
  let k = '';
  Array.from(str).forEach(function(item) {
    if (item !== char) {
      k += item
    }
  })
  return k;
}
console.log(replaceChar('*', 'Test*Num*One'));
console.log(replaceChar('|', 't|e|s|t|1'));
console.log(replaceChar('1', 'B1C1D1E1F'));

您可以说,我试图容纳通过Control.Padding设置的填充,但是无论我设置了什么TextFormatFlags,调用DrawText时都不会应用填充。

因此,我尝试使用以下方法设置文本绘制位置的界限:

Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
    MyBase.OnPaint(e)

    If Me.Dismissable Then
        Using dismissBrush As Brush = New SolidBrush(styleConfiguration(Me.Style).Value)
            ' Custom drawing
        End Using
    End If

    TextRenderer.DrawText(e.Graphics, Me.Text, Me.Font, New Point(0, 0), Me.ForeColor, TextFormatFlags.Left Or TextFormatFlags.LeftAndRightPadding)
End Sub

但是,即使页边距全部设置为5,这也将文本完全推离控件的视图。

0 个答案:

没有答案