Как я могу поворачивать (90 градусов) панель управления? Я знаю, что это очень просто в WPF, но я не могу его использовать. Знаете ли вы, что такое панель управления WinForm? Спасибо всем!Поверните панель в WinForm
ответ
Вам необходимо переопределить OnPaint, а затем вручную нарисовать все элементы управления на panel с использованием GDI. Я никогда не делал поворота, но я сделал некоторые пользовательские ретрансляции для таких вещей, как выпадающие списки. Вам нужно будет написать пользовательские OnPaints для каждого типа управления на панели.
Так что больше на этом, поскольку я просто попробовал это сам ... Я не думаю, что вы можете нарисовать обычную часть большинства общих элементов управления. WPF - это другое животное, и оно предназначено для поддержки этого типа вещей. Когда эти элементы управления рисуют, они делают это под обложками, и вы ничего не можете сделать. Я смог рисовать и поворачивать панель, но я не мог делать другие элементы управления, такие как флажок.
public class RotatePanel : Panel, IRotate
{
public RotatePanel() : base()
{
Angle = 0;
}
protected override void OnPaint(PaintEventArgs e)
{
using (Graphics g = this.CreateGraphics())
{
foreach (IRotate control in this.Controls)
{
control.Angle = Angle;
}
g.RotateTransform(Angle);
g.DrawRectangle(new System.Drawing.Pen(new SolidBrush(Color.Black), 2f), 4f, 4f, 10f, 10f);
g.DrawRectangle(new System.Drawing.Pen(new SolidBrush(Color.Azure), 2f), 14f, 14f, 30f, 30f);
g.Flush();
}
base.OnPaint(e);
}
protected override void OnPaintBackground(PaintEventArgs e)
{
base.OnPaintBackground(e);
}
public float Angle
{
get;
set;
}
}
public interface IRotate
{
float Angle { get; set; }
}
public class RotateCheckBox : CheckBox, IRotate
{
public float Angle { get; set; }
public RotateCheckBox():base()
{
Angle = 0;
}
protected override void OnPaint(PaintEventArgs pevent)
{
pevent.Graphics.RotateTransform(this.Angle);
pevent.Graphics.Flush();
base.OnPaint(pevent);
}
}
- 1. Поверните панель 90º
- 2. C# Winform Закрыть панель
- 3. Добавить несколько UserControls в панель WinForm
- 4. Панель в winform ведет себя неправильно
- 5. Как настроить панель управления winform в C#
- 6. Анимированная панель в рабочем состоянии winform
- 7. установить панель границы толщина в C# winform
- 8. Поверните панель в круг в C# Visual Studio 2010
- 9. WinForm Grid: Как скрыть панель прокрутки.
- 10. C# WinForm BackgroundWorker, не обновляющий панель инструментов
- 11. Панель Flowlayout, скрытая другими элементами управления - Winform
- 12. Добавить расширитель (свернуть/развернуть) на панель WinForm
- 13. Поверните img в панели самонастройки
- 14. Можем ли мы использовать панель какой-либо winform из другой winform в C#?
- 15. openGL: Поверните всю сцену или «поверните» камеру
- 16. Поверните камеру в Matter.js
- 17. Поверните строку в массив
- 18. Поверните рекурсию в складку?
- 19. Поверните div в ссылку
- 20. Поверните лицо в образе
- 21. Поверните UIView в UIImage
- 22. Поверните видео в android
- 23. Поверните UIViewControllers в UIScrollView
- 24. Поверните объект в SVG
- 25. Поверните видео в android
- 26. Поверните этикетки в GWT
- 27. Поверните плеер в XNA
- 28. Поверните кортеж в список
- 29. Поверните строку в переменную
- 30. Поверните pdf в рубине
Просто из любопытства, почему вы не можете использовать WPF? Вы знаете об ElementHost, да? Мне интересно, потому что мы думаем о добавлении некоторых WPF в наше приложение WinForms, и мне интересно, почему вы не в состоянии. –