0

Visual Studio 2013 と Mvc Framework を使用しています。ウィンドウ デスクトップ アプリケーションを mvc Web アプリケーションに移行しています。現在、プロジェクトで使用している c# の TextRenderer.MeasureText と同等の関数を検索しています。シンプルに、mvc c# でこの変換関数が必要です。基本的に、このテクノロジーの Textrender.MeasureText 代替オプションを検索しています。

  **

Private Sub DrawPointText(ByRef gr As Graphics, ByVal Color As Drawing.Color, ByRef Point As PointF, _
                        ByVal Corner As String, ByVal strOutput As String, Optional ByVal optFont As Font = Nothing, _
                        Optional ByVal intRotate As Integer = 0)
        Dim fnt As New Font("New Times Roman", 12, FontStyle.Bold)
        Dim strX As String
        Dim TextPositionX As Double
        Dim TextPositionY As Double
        Dim TextShift As Size
        Dim OrgPoint As VGS.PointD
        Dim drawFormat As New System.Drawing.StringFormat
        If Not optFont Is Nothing Then
            fnt = optFont
        End If
        OrgPoint = RevertValue(Point)
        strX = strOutput
        TextShift = TextRenderer.MeasureText(strX, fnt)
        Select Case Corner
            Case "NE"
                TextPositionX = Point.X
                TextPositionY = Point.Y - TextShift.Height
            Case "SE"
                TextPositionX = Point.X
                TextPositionY = Point.Y
            Case "SW"
                TextPositionX = Point.X - TextShift.Width
                TextPositionY = Point.Y
            Case "NW"
                TextPositionX = Point.X - TextShift.Width
                TextPositionY = Point.Y - TextShift.Height
            Case Else
                MessageBox.Show("Unknown Corner In DrawPointText")
        End Select
        If intRotate = 0 Then
            gr.DrawString(strX, fnt, New SolidBrush(Color), TextPositionX, TextPositionY, drawFormat)
        Else
            drawFormat.FormatFlags = StringFormatFlags.DirectionVertical
            gr.RotateTransform(intRotate)
            If intRotate > 0 Then
                gr.DrawString(strX, fnt, New SolidBrush(Color), TextPositionY, -1 * TextPositionX) ', drawFormat
            Else
                gr.DrawString(strX, fnt, New SolidBrush(Color), -1 * TextPositionY, TextPositionX) ', drawFormat
            End If
            gr.RotateTransform(-1 * intRotate)
        End If
    End Sub

**

4

2 に答える 2

3

テキスト サイズは、フォント サイズ、ズーム率、フォント自体など、さまざまな要因に依存します。 使用しているフォントがクライアントにインストールされているかどうかさえわかりません。

したがって、Stephen が既に述べたように、これはサーバー上では不可能です。サーバーが制御できないテキスト サイズに影響を与える多くの要因があるためです。

デスクトップ アプリケーションを mvc アプリケーションに変換すると、この部分 (GUI)に相当するものはJavaScriptでの実装になります。
JavaScriptでは、テキスト サイズを測定できます

于 2016-03-16T06:03:37.573 に答える