Просто удивление, если существует известный способ получить Моносистему. Windows. Приложение форм для движения полного экрана на Ubuntu/Gnome.
Моно 2.4.2.3 Ubuntu, 9.10
Выполнение его в Windows требует pinvoke, ясно не собираясь работать здесь.
Это - то, что я заставляю границу окна установки ни к одному, положение окна центрировать, и заявляю максимизируемому:
сопроводительный текст http://dl.dropbox.com/u/116092/misc/permalink/joggler/screenshot01.png
Обновление.
Также попробовали:
это. StartPosition = Система. Windows. Формы. FormStartPosition. CenterScreen;
это. WindowState = Система. Windows. Формы. FormWindowState. Максимизируемый;
CTRL-F11
Текст = строка. Пустой;//Никакая подпись
MaximizeBox = ложь;
MinimizeBox = ложь;
ControlBox = ложь;
FormBorderStyle = ни один;
WindowState = максимизируемый;
FormBorderStyle = FormBorderStyle. Ни один;
Местоположение = новая Точка (0, 0);
Размер = экран. PrimaryScreen. Границы. Размер;
Все из которых я заканчиваю с тем же результатом.
Я столкнулся с выводом, который включает pinvoke, включающий _NET_WM_STATE_FULLSCREEN, но это - насколько я имею с ним. Любые указатели на этом ценились бы.
_NET_WM_STATE_FULLSCREEN просто избавится от границ. Панель GNOME по-прежнему будет отображаться.
Согласно следующему сообщению, секрет заключается в том, чтобы избавиться от минимального / максимального размера, чтобы оконный менеджер сам изменял размер:
http://linux.derkeiler.com/Mailing-Lists/GNOME/ 2010-01 / msg00035.html
Вот некоторая документация по собственной спецификации:
http://standards.freedesktop.org/wm-spec/wm-spec-latest.html
http: // www.x.org/docs/ICCCM/icccm.pdf
Чтобы общаться напрямую с системой X Window, вам нужно закрепить в XLib. Чтобы отправить что-то вроде _NET_WM_STATE_FULLSCREEN, у вас должен быть указатель на окно, а также на дисплей.
Я не знаю, как найти дисплей, но могу помочь указателем на окно. При работе в X свойство Form.Handle
должно быть указателем на окно X.
Вы пробовали это?
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
К сожалению, сейчас у меня нет Ubuntu, но я вижу старые патчи для этого в старых моно-версиях ...
Я не могу сейчас проверить это, но пробовали ли вы простое изменение размера?
form.FormBorderStyle = FormBorderStyle.None
form.Location = Point(0, 0)
form.Size = Screen.PrimaryScreen.Bounds.Size
Должна быть возможность отображать каждое приложение, работающее внутри gnome, в полноэкранном режиме с помощью горячей клавиши «CTRL + F11».
Может быть, вы могли бы попробовать
System.Windows.Forms.SendKeys.Send();
, но это всего лишь предположение, у меня нет Linux с запущенным банкоматом, чтобы попробовать это. Но, возможно, это поможет.
Не понимаю, что вы имеете в виду под «полноэкранным режимом», но я написал несколько приложений Windows.Forms, которые занимают весь экран, и без единого PInvoke.
Вот как я настраиваю свою основную форму ...
Text = string.Empty; // No caption
MaximizeBox = false;
MinimizeBox = false;
ControlBox = false;
FormBorderStyle = None;
WindowState = Maximized;
Необязательно,
TopMost = true;
Надеюсь, это поможет.
На данный момент я работал над этим, установив свойство autohide панели.
Не идеально, потому что это зависит от того, как пользователь меняет среду, чтобы использовать мое приложение, но лучше, чем ничего.
Вам нужно отключить визуальные эффекты в ubuntu.
редактировать: И убедитесь, что размер вашей формы как минимум равен разрешению экрана без границ. Если границы находятся во время разработки и вы удаляете их в коде, вам понадобится что-то вроде 1030x796 для дисплея 1024x768.