Jag har hittat en ny label(som gör att man kan ha två olika färger i bakgrunden) fungerade inte denna: Jag kanske förklarade otydligt, texten skrivs ut på FORMEN, inte i labelen. Nu har jag fått den att fungera: Det är väl bara att reversera strängen annars... så att den bli baklänges. Hej. eller så gör man så här: Hej, och tack för att du försöker, men det blir ju spegelvänt, och det var inte så jag menade.Om vertikal text.
Vad jag skulle vlija göra är, att ha texten vertikalt.
Jag försöker så här:
<code>
private void labelGradient6_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
System.Drawing.Graphics formGraphics = this.CreateGraphics();
string drawString = "Svenssons AkordsWerkstad Wexiö";
System.Drawing.Font drawFont = new System.Drawing.Font("Arial", 16);
System.Drawing.SolidBrush drawBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Black);
float x = 0.0f;
float y = 60.0f;
System.Drawing.StringFormat drawFormat = new System.Drawing.StringFormat(StringFormatFlags.DirectionVertical);
formGraphics.DrawString(drawString, drawFont, drawBrush, x, y, drawFormat);
drawFont.Dispose();
drawBrush.Dispose();
formGraphics.Dispose();
}
</code>
Vad som händer är att texen kommer UNDER labelen.
Skulle man inte kunna fixa detta via z-order?
I såfall hur?
Jag försökte att skicka labelen längst bak men det hjälpte inte.Sv: Om vertikal text.
<code>
StringFormatFlags.DirectionVertical
</code>
?
Vad händer om du inte använder dina x och y kordinater?
//Johan NSv: Om vertikal text.
Sv: Om vertikal text.
<code>
text = "Svenssons AkordsWerkstad Wexiö";
fontFamily = new FontFamily("Microsoft Sans Serif");
font = new Font(
fontFamily,
14,
FontStyle.Regular,
GraphicsUnit.Point);
pointF = new PointF(1, 101);
stringFormat = new StringFormat();
solidBrush = new SolidBrush(Color.FromArgb(243, 235, 235));
stringFormat.FormatFlags = StringFormatFlags.DirectionVertical;
e.Graphics.DrawString(text, font, solidBrush, pointF, stringFormat);
</code>
Det är bara ett fel...
Den skriver uppifrån och ner, jag skulle vilja ha den till nerifrån och upp.
Jag chansade på reverse, men det blev ju så galet.
Någon som har något tips?Sv: Om vertikal text.
Vet inte om det finns nån färdig funktion för det men annars är det ju lätt skrivet.Sv: Om vertikal text.
Du har ju ett mellanslag mellan varje ord, kör en splitt på mellanslagen.
Sedan köra:
<code>
Array.Reverse(......)
</code>
Kanske var så du gjorde?
//Johan NSv: Om vertikal text.
<code>
private string Reverse(string str)
{
int len=str.Length;
Char[] chrs=new Char[len];
for(int i=0;i<len;i++)
{
chrs[len-1-i]=str[i];
}
return new String(chrs);
}
</code>Sv: Om vertikal text.
Jag har hittat reverse function, men som sagt, det blir ju galet.
Man kan väll kanske säga, idag så visas texten på 90 grader, men jag ville ha den på 180 grader.