タイトル | : Re: Labelを90°回転させてデザインに張り付けたい |
記事No | : 11699 |
投稿日 | : 2016/07/14(Thu) 17:27 |
投稿者 | : 魔界の仮面弁士 |
> 作業しているのはWindowsフォームアプリケーションでやってます。
残念ながら、Windows Forms にその機能はありません。
(案1) ElementHost コントロールを貼り、その中に RotateTransform した WPF コンテンツを配置する
(案2) 自前で描画する(以下参考例)
Imports System.ComponentModel Public Class VerticalLabel Inherits Label
Protected Overrides Sub CreateHandle() MyBase.CreateHandle() AutoSize = False Text2 = Name End Sub Protected Overrides Sub OnPaint(e As PaintEventArgs) e.Graphics.RotateTransform(90.0F) Using b As New SolidBrush(ForeColor) e.Graphics.DrawString(Text2, Font, b, e.Graphics.VisibleClipBounds) End Using MyBase.OnPaint(e) End Sub
<EditorBrowsable(EditorBrowsableState.Never)> _ <Browsable(False)> _ <DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)> _ Public Overrides Property Text As String Get Return "" End Get Set(value As String) MyBase.Text = "" Text2 = value End Set End Property
Public Property Text2 As String Get Return _text2 End Get Set(value As String) _text2 = value OnTextChanged(EventArgs.Empty) End Set End Property Private _text2 As String
<EditorBrowsable(EditorBrowsableState.Never)> _ <Browsable(False)> _ <DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)> _ Public Overrides Property TextAlign As ContentAlignment Get Return MyBase.TextAlign End Get Set(value As ContentAlignment) MyBase.TextAlign = value End Set End Property End Class
|