Vous pouvez obtenir à mi-chemin en appelant la méthode DrawToBitmap sur votre panneau, puis en faisant pivoter le bitmap et en l'affichant, par exemple. dans un PictureBox:
Bitmap bmp = new Bitmap(panel.Width, panel.Height);
panel.DrawToBitmap(bmp, new Rectangle(Point.Empty, panel.Size));
bmp.RotateFlip(RotateFlipType.Rotate270FlipNone);
PictureBox pbox = new PictureBox();
pbox.Location = panel.Location;
pbox.SizeMode = PictureBoxSizeMode.AutoSize;
pbox.Image = bmp;
Controls.Remove(panel);
Controls.Add(pbox);
Rotation des angles autres que des incréments de 90 degrés sont également possibles, si vous dessinez le bitmap dans un autre bitmap en utilisant GDI:
Bitmap bmp2 = new Bitmap(bmp.Width + 75, bmp.Height + 100);
Graphics g = Graphics.FromImage(bmp2);
g.TranslateTransform(bmp2.Width/2, bmp2.Height/2);
g.RotateTransform(-15f);
g.TranslateTransform(-bmp.Width/2, -bmp.Height/2);
g.DrawImageUnscaled(bmp, Point.Empty);
g.Dispose();
Le problème est bien sûr que vous êtes n'affiche qu'une image de votre panneau, et non le panneau lui-même, il n'est donc plus possible d'interagir avec les contrôles à l'intérieur. Cela pourrait probablement être fait aussi bien, mais vous devriez jouer avec les messages de fenêtre, ce qui devient un peu plus compliqué. En fonction de vos besoins, vous pouvez également vous en sortir en manipulant les événements click et key sur le PictureBox, en manipulant les contrôles du panneau, puis en mettant à jour l'image.
Copie possible de * [étiquette verticale C# dans un Windows Forms] (http://stackoverflow.com/questions/1371943/c-sharp-vertical-label-in-a-windows-forms) *. –