Я получаю текущую ориентацию окна. ориентация окна, например, пейзаж, портрет, пейзаж и перевернутый портрет. Я попытался реализовать в окне приложения, но не получил никакого решения. В C# как получить и установить ориентацию с помощью раздела реестра или в C#.Получить текущую ориентацию окна в winform C#
ответ
В winforms нет такой ориентации, как ориентация окна.
Вы можете использовать свойства формы и размера формы, чтобы установить прямоугольник отображения, но насколько я знаю, вы не можете легко перевернуть его содержимое, как в печатном документе.
Да, есть такая вещь, как ориентация окна в winforms. В winforms получите угол поворота экрана, например 0,90, 180 или 270. Я реализовал это в своем оконном приложении.
Это NativeMethod класс ............ код .....
using System;
using System.Runtime.InteropServices;
namespace WindowApplication
{
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct DEVMODE
{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
public string dmDeviceName;
public short dmSpecVersion;
public short dmDriverVersion;
public short dmSize;
public short dmDriverExtra;
public int dmFields;
public int dmPositionX;
public int dmPositionY;
public int dmDisplayOrientation;
public int dmDisplayFixedOutput;
public short dmColor;
public short dmDuplex;
public short dmYResolution;
public short dmTTOption;
public short dmCollate;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
public string dmFormName;
public short dmLogPixels;
public short dmBitsPerPel;
public int dmPelsWidth;
public int dmPelsHeight;
public int dmDisplayFlags;
public int dmDisplayFrequency;
public int dmICMMethod;
public int dmICMIntent;
public int dmMediaType;
public int dmDitherType;
public int dmReserved1;
public int dmReserved2;
public int dmPanningWidth;
public int dmPanningHeight;
};
public class NativeMethod
{
// PInvoke declaration for EnumDisplaySettings Win32 API
[DllImport("user32.dll", CharSet = CharSet.Ansi)]
public static extern int EnumDisplaySettings(string lpszDeviceName, int iModeNum, ref DEVMODE lpDevMode);
// PInvoke declaration for ChangeDisplaySettings Win32 API
[DllImport("user32.dll", CharSet = CharSet.Ansi)]
public static extern int ChangeDisplaySettings(ref DEVMODE lpDevMode, int dwFlags);
// helper for creating an initialized DEVMODE structure
public static DEVMODE CreateDevmode()
{
DEVMODE dm = new DEVMODE();
dm.dmDeviceName = new String(new char[32]);
dm.dmFormName = new String(new char[32]);
dm.dmSize = (short)Marshal.SizeOf(dm);
return dm;
}
// constants
public const int ENUM_CURRENT_SETTINGS = -1;
public const int DISP_CHANGE_SUCCESSFUL = 0;
public const int DISP_CHANGE_BADDUALVIEW = -6;
public const int DISP_CHANGE_BADFLAGS = -4;
public const int DISP_CHANGE_BADMODE = -2;
public const int DISP_CHANGE_BADPARAM = -5;
public const int DISP_CHANGE_FAILED = -1;
public const int DISP_CHANGE_NOTUPDATED = -3;
public const int DISP_CHANGE_RESTART = 1;
public const int DMDO_DEFAULT = 0;
public const int DMDO_90 = 1;
public const int DMDO_180 = 2;
public const int DMDO_270 = 3;
}
}
Используйте удар код в основной форме ........... .
private string[] orientationNames = new string[4] { "Default", "90", "180", "270" };
private int[] orientationValues = new int[4]{NativeMethod.DMDO_DEFAULT,
NativeMethod.DMDO_90,
NativeMethod.DMDO_180,
NativeMethod.DMDO_270};
public static RotateFlipType currentOrientation { get; set; }
public void ChangeDisplaySettings() {
DEVMODE dm = NativeMethod.CreateDevmode();
GetSettings(ref dm);
switch (dm.dmDisplayOrientation)
{
case 0:
currentOrientation = RotateFlipType.RotateNoneFlipX;
break;
case 1:
currentOrientation = RotateFlipType.Rotate270FlipNone;
break;
case 2:
currentOrientation = RotateFlipType.Rotate180FlipX;
break;
case 3:
currentOrientation = RotateFlipType.Rotate90FlipNone;
break;
}
}
protected void SystemEvents_DisplaySettingsChanged(object sender, EventArgs events)
{
ChangeDisplaySettings();
}
Главная форма конструктора .........
public MainForm()
{
SystemEvents.DisplaySettingsChanged += new EventHandler(SystemEvents_DisplaySettingsChanged);
ChangeDisplaySettings();
}
Я не сказал, что это невозможно, я сказал, что нет такой вещи (что означает, что для этого нет готового решения) – ATC
- 1. Получить текущую ориентацию iPad?
- 2. Получить текущую ориентацию устройства
- 3. Как получить текущую ориентацию iPhone?
- 4. Android: Получить текущую ориентацию устройства
- 5. Как я могу получить текущую ориентацию экрана?
- 6. android - как я могу получить текущую ориентацию?
- 7. Как закрыть текущую форму Winform C#
- 8. C++ получить текущую дату
- 9. получить текущую страницу в C#
- 10. Каков наилучший способ получить текущую ориентацию для установки просмотров
- 11. Отображение окна консоли при запуске WinForm (C#)
- 12. Получить текущую позицию окна под Windows
- 13. Python Selenium получить текущую ручку окна
- 14. Как получить текущую позицию элемента относительно окна
- 15. Использовать текущую ориентацию на контроллере push view
- 16. Как определить текущую ориентацию для вращения UIImage?
- 17. UITraitCollection iPad как определить текущую ориентацию
- 18. emacs как определить ориентацию окна?
- 19. C# Winform получить текст richtextbox
- 20. Получить ориентацию в градусах
- 21. Использование растрового изображения в качестве главного окна в C# WinForm
- 22. Можно изменить ориентацию окна в gtk?
- 23. Получить текст элемента TabIndex в C# winform
- 24. Получить режим изменения размера WinForm в C#
- 25. Как получить скриншот winform в C#?
- 26. Как получить ориентацию устройства
- 27. Как получить реальную текущую дату в C#?
- 28. получить текущую загрузку процессора в C#
- 29. Получить текущую длину от StringLengthAttribute в C#
- 30. Переопределить поведение изменения окна winform
У меня нет никакого решения. У меня есть использование выше кода, но некоторые устройства имеют пейзаж по умолчанию или некоторые имеют портрет. Я не получаю пейзаж, портрет, пейзаж, перевернутый портрет. Если у вас есть решение, пожалуйста, дайте мне решение .. –