Já potřebuji text otočit o 180 stupňů, ale už se mi to podařilo vyřešit pomocí kreslení obrázků, uložení na server a vložení do gridview. Na serveru je nutné mít povolený zápis do adresáře, kam se obrázky ukládají (v kódu dole je zápis do kořen. adresáře, ve skutečnosti je ukládám jinam). Protože se vždy jmenují 0.jpg, 1.jpg ... atd nemažu je, vždy se při novém načtení stránky překreslí. Nevím jestli je ten postup "košer", ale už to chodí :-)
Imports System.Data
Imports System.Drawing
Imports System.Drawing.Imaging
Imports System.Drawing.Text
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim dt As New DataTable
dt.Columns.Add("něco hodně dlouhého")
dt.Columns.Add("další dlouhý text")
dt.Columns.Add("pro změnu dlouhý text")
dt.Columns.Add(".. a pro změnu dlouhý název sloupce")
For i As Integer = 0 To 5
dt.Rows.Add()
dt.Rows(i).Item(0) = "1"
dt.Rows(i).Item(1) = "bla"
dt.Rows(i).Item(2) = "1A"
dt.Rows(i).Item(3) = "3.2"
Next
GridView1.DataSource = dt
GridView1.DataBind()
End Sub
Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
Dim tc As TableCell
Dim a As String
Dim MojeBarva As Color = System.Drawing.ColorTranslator.FromHtml("#B5C7DE")
Dim TextBarva As Color = System.Drawing.ColorTranslator.FromHtml("#37558F")
Dim fontfml As New FontFamily(genericFamily:=GenericFontFamilies.SansSerif)
Dim font As New Font(fontfml, 10, FontStyle.Bold)
Dim brush As New SolidBrush(TextBarva)
Dim drawFormat = New StringFormat()
If e.Row.RowType = DataControlRowType.Header Then
e.Row.Height = 100
e.Row.Width = 100
For i = 0 To e.Row.Cells.Count - 1
tc = e.Row.Cells(i)
a = HttpUtility.HtmlDecode(tc.Text)
tc.Text = ""
Dim b As Bitmap = New Bitmap(24, 240)
Dim g As Graphics
g = Graphics.FromImage(b)
g.Clear(MojeBarva)
drawFormat.FormatFlags = StringFormatFlags.DirectionVertical
drawFormat.Alignment = StringAlignment.Near
g.DrawString(a, font, brush, 1, 1, drawFormat)
b.RotateFlip(RotateFlipType.Rotate180FlipNone)
Dim jm As String = i & ".jpg"
'b.Save(Response.OutputStream, ImageFormat.Jpeg)
b.Save(Server.MapPath(jm), ImageFormat.Jpeg)
Dim img As New System.Web.UI.WebControls.Image()
img.ImageUrl = jm
tc.Controls.Add(img)
tc.VerticalAlign = VerticalAlign.Bottom
Next
End If
End Sub
End Class
|