この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

TrackBarRenderer クラス

 

公開日: 2016年10月

Visual スタイルを使用して、トラック バー コントロールの表示に使用されるメソッドを提供します。 このクラスは継承できません。

名前空間:   System.Windows.Forms
アセンブリ:  System.Windows.Forms (System.Windows.Forms.dll 内)

System.Object
  System.Windows.Forms.TrackBarRenderer

Public NotInheritable Class TrackBarRenderer

名前説明
System_CAPS_pubpropertySystem_CAPS_staticIsSupported

示す値を取得するかどうか、 TrackBarRenderer クラスを使用して、visual スタイルを使用して、トラック バーを描画することです。

名前説明
System_CAPS_pubmethodSystem_CAPS_staticDrawBottomPointingThumb(Graphics, Rectangle, TrackBarThumbState)

Visual スタイルを使用して、下向きのトラック バーのスライダー (つまみとも呼ばれます) を描画します。

System_CAPS_pubmethodSystem_CAPS_staticDrawHorizontalThumb(Graphics, Rectangle, TrackBarThumbState)

Visual スタイルを使用して水平トラック バーのスライダー (つまみとも呼ばれます) を描画します。

System_CAPS_pubmethodSystem_CAPS_staticDrawHorizontalTicks(Graphics, Rectangle, Int32, EdgeStyle)

指定された数の visual スタイルで水平方向のトラック バーの目盛りを描画します。

System_CAPS_pubmethodSystem_CAPS_staticDrawHorizontalTrack(Graphics, Rectangle)

Visual スタイルを使用して水平トラック バーのトラックを描画します。

System_CAPS_pubmethodSystem_CAPS_staticDrawLeftPointingThumb(Graphics, Rectangle, TrackBarThumbState)

Visual スタイルを使用して、左向きのトラック バーのスライダー (つまみとも呼ばれます) を描画します。

System_CAPS_pubmethodSystem_CAPS_staticDrawRightPointingThumb(Graphics, Rectangle, TrackBarThumbState)

Visual スタイルを使用して、右向きのトラック バーのスライダー (つまみとも呼ばれます) を描画します。

System_CAPS_pubmethodSystem_CAPS_staticDrawTopPointingThumb(Graphics, Rectangle, TrackBarThumbState)

上向きのトラック バーのスライダー (つまみとも呼ばれます) visual スタイルでを描画します。

System_CAPS_pubmethodSystem_CAPS_staticDrawVerticalThumb(Graphics, Rectangle, TrackBarThumbState)

垂直トラック バーのスライダー (つまみとも呼ばれます) は、visual スタイルで描画します。

System_CAPS_pubmethodSystem_CAPS_staticDrawVerticalTicks(Graphics, Rectangle, Int32, EdgeStyle)

指定された数の visual スタイルを垂直方向のトラック バーの目盛りを描画します。

System_CAPS_pubmethodSystem_CAPS_staticDrawVerticalTrack(Graphics, Rectangle)

Visual スタイルで垂直トラック バーのトラックを描画します。

System_CAPS_pubmethodEquals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。(Object から継承されます。)

System_CAPS_pubmethodSystem_CAPS_staticGetBottomPointingThumbSize(Graphics, TrackBarThumbState)

下を向いてのトラック バーのスライダー (つまみとも呼ばれます) のピクセル単位のサイズを返します。

System_CAPS_pubmethodGetHashCode()

既定のハッシュ関数として機能します。(Object から継承されます。)

System_CAPS_pubmethodSystem_CAPS_staticGetLeftPointingThumbSize(Graphics, TrackBarThumbState)

左側のトラック バーのスライダー (つまみとも呼ばれます) のピクセルで、サイズを返します。

System_CAPS_pubmethodSystem_CAPS_staticGetRightPointingThumbSize(Graphics, TrackBarThumbState)

右側のトラック バーのスライダー (つまみとも呼ばれます) のピクセル単位で、サイズを返します。

System_CAPS_pubmethodSystem_CAPS_staticGetTopPointingThumbSize(Graphics, TrackBarThumbState)

上向きのトラック バーのスライダー (つまみとも呼ばれます) のピクセル単位のサイズを返します。

System_CAPS_pubmethodGetType()

現在のインスタンスの Type を取得します。(Object から継承されます。)

System_CAPS_pubmethodToString()

現在のオブジェクトを表す文字列を返します。(Object から継承されます。)

TrackBarRenderer クラスのセットを提供 static メソッドをオペレーティング システムの現在の visual スタイルを使用して、トラック バー コントロールの各部分の表示に使用されることができます。 コントロールのユーザー インターフェイスを描画すること、コントロールを表示します。 これは、現在の visual スタイルの外観を持つカスタム コントロールを描画する場合に便利です。

オペレーティング システムで visual スタイルが有効になっている、visual スタイルがアプリケーション ウィンドウのクライアント領域に適用されている場合は、このクラスのメソッドには、現在の visual スタイルのトラック バーが描画されます。 それ以外の場合、このクラスのメソッドがスローされます、 InvalidOperationExceptionです。 このクラスのメンバーを使用できるかどうかを確認するのには、値を確認することができます、 IsSupported プロパティです。

このクラスの機能をラップする、 System.Windows.Forms.VisualStyles.VisualStyleRenderer によって公開されている要素の 1 つに設定されている、 System.Windows.Forms.VisualStyles.VisualStyleElement.TrackBar クラスです。 詳細については、「visual スタイルが使用されているコントロールのレンダリング」を参照してください。

WinXpFamily

Visual styles are supported only on these platforms.

次のコード例を使用するカスタム コントロールを作成する方法を示しています、 TrackBarRenderer をマウスのクリックに応答する水平方向のトラック バーを描画するメソッドです。

Imports System
Imports System.Drawing
Imports System.Windows.Forms
Imports System.Windows.Forms.VisualStyles


Namespace TrackBarRendererSample

    Class Form1
        Inherits Form

        Public Sub New()
            Dim TrackBar1 As New CustomTrackBar(19, New Size(300, 50))
            Me.Width = 500
            Me.Controls.Add(TrackBar1)
        End Sub

        <STAThread()> _
        Shared Sub Main()
            ' Note that the call to EnableVisualStyles below does
            ' not affect whether TrackBarRenderer.IsSupported is true; 
            ' as long as visual styles are enabled by the operating system, 
            ' IsSupported is true.
            Application.EnableVisualStyles()
            Application.Run(New Form1())
        End Sub
    End Class

    Class CustomTrackBar
        Inherits Control
        Private numberTicks As Integer = 10
        Private trackRectangle As New Rectangle()
        Private ticksRectangle As New Rectangle()
        Private thumbRectangle As New Rectangle()
        Private currentTickPosition As Integer = 0
        Private tickSpace As Single = 0
        Private thumbClicked As Boolean = False
        Private thumbState As TrackBarThumbState = TrackBarThumbState.Normal

        Public Sub New(ByVal ticks As Integer, ByVal trackBarSize As Size)

            With Me
                .Location = New Point(10, 10)
                .Size = trackBarSize
                .numberTicks = ticks
                .BackColor = Color.DarkCyan
                .DoubleBuffered = True
            End With

            ' Calculate the initial sizes of the bar, 
            ' thumb and ticks.
            SetupTrackBar()
        End Sub

        ' Calculate the sizes of the bar, thumb, and ticks rectangle.
        Private Sub SetupTrackBar()
            If Not TrackBarRenderer.IsSupported Then
                Return
            End If
            Using g As Graphics = Me.CreateGraphics()
                ' Calculate the size of the track bar.
                trackRectangle.X = ClientRectangle.X + 2
                trackRectangle.Y = ClientRectangle.Y + 28
                trackRectangle.Width = ClientRectangle.Width - 4
                trackRectangle.Height = 4

                ' Calculate the size of the rectangle in which to 
                ' draw the ticks.
                ticksRectangle.X = trackRectangle.X + 4
                ticksRectangle.Y = trackRectangle.Y - 8
                ticksRectangle.Width = trackRectangle.Width - 8
                ticksRectangle.Height = 4

                tickSpace = (CSng(ticksRectangle.Width) - 1) / _
                    (CSng(numberTicks) - 1)

                ' Calculate the size of the thumb.
                thumbRectangle.Size = _
                    TrackBarRenderer.GetTopPointingThumbSize( _
                    g, TrackBarThumbState.Normal)

                thumbRectangle.X = CurrentTickXCoordinate()
                thumbRectangle.Y = trackRectangle.Y - 8
            End Using
        End Sub

        Private Function CurrentTickXCoordinate() As Integer
            If tickSpace = 0 Then
                Return 0
            Else
                Return CInt(Math.Round(tickSpace)) * currentTickPosition
            End If
        End Function

        ' Draw the track bar.
        Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
            If Not TrackBarRenderer.IsSupported Then
                Me.Parent.Text = "CustomTrackBar Disabled"
                Return
            End If

            Me.Parent.Text = "CustomTrackBar Enabled"
            TrackBarRenderer.DrawHorizontalTrack(e.Graphics, _
                trackRectangle)
            TrackBarRenderer.DrawTopPointingThumb(e.Graphics, _
                thumbRectangle, thumbState)
            TrackBarRenderer.DrawHorizontalTicks(e.Graphics, _
                ticksRectangle, numberTicks, EdgeStyle.Raised)
        End Sub

        ' Determine whether the user has clicked the track bar thumb.
        Protected Overrides Sub OnMouseDown(ByVal e As MouseEventArgs)
            If Not TrackBarRenderer.IsSupported Then
                Return
            End If
            If Me.thumbRectangle.Contains(e.Location) Then
                thumbClicked = True
                thumbState = TrackBarThumbState.Pressed
            End If

            Me.Invalidate()
        End Sub

        ' Redraw the track bar thumb if the user has moved it.
        Protected Overrides Sub OnMouseUp(ByVal e As MouseEventArgs)
            If Not TrackBarRenderer.IsSupported Then
                Return
            End If
            If thumbClicked = True Then
                If e.Location.X > trackRectangle.X And _
                    e.Location.X < trackRectangle.X + _
                    trackRectangle.Width - thumbRectangle.Width Then

                    thumbClicked = False
                    thumbState = TrackBarThumbState.Hot
                    Me.Invalidate()
                End If
                thumbClicked = False
            End If
        End Sub

        ' Track cursor movements.
        Protected Overrides Sub OnMouseMove(ByVal e As MouseEventArgs)
            If Not TrackBarRenderer.IsSupported Then
                Return
            End If
            ' The user is moving the thumb.
            If thumbClicked = True Then

                ' Track movements to the next tick to the right, if the
                ' cursor has moved halfway to the next tick.
                If currentTickPosition < numberTicks - 1 And _
                    e.Location.X > CurrentTickXCoordinate() + _
                    CInt(tickSpace) Then
                    currentTickPosition += 1

                ' Track movements to the next tick to the left, if 
                ' the cursor has moved halfway to the next tick.
                Else
                    If currentTickPosition > 0 And _
                        e.Location.X < CurrentTickXCoordinate() - _
                        CInt(tickSpace / 2) Then
                        currentTickPosition -= 1
                    End If
                End If
                thumbRectangle.X = CurrentTickXCoordinate()

            ' The cursor is passing over the track.
            Else
                If thumbRectangle.Contains(e.Location) Then
                    thumbState = TrackBarThumbState.Hot
                Else
                    thumbState = TrackBarThumbState.Normal
                End If
            End If

            Invalidate()
        End Sub

    End Class
End Namespace

.NET Framework
2.0 以降で使用可能

この型のパブリック static (Visual Basic では Shared ) メンバーはスレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

トップに戻る
表示: