Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2012, 03:45   #1
Mixim
Форумчанин
 
Регистрация: 29.10.2009
Сообщений: 259
Вопрос GTK#: Горизонтальная ориентация элементов GUI

Около 1.5-2 лет реализовывал свои приложения в VS2010, а GUI делал на XAML'е(WPF-приложения). С разработкой интерфейса на XAML проблем практически никогда не возникало, но тут решил ненадолго пересесть на IDE MonoDevelop и аналог .NET Framework - GTK#, причем писать WindowsApplication ни только не хочется, но и нельзя, нужно использовать только GTK#. Ладно, вступление закончил.
В XAML'е для того, чтобы сделать горизонтальное\вертикальное выравнивание элементов, я устанавливал свойства HorizontalAlignment\VerticalAlignme nt в нужное мне значение и если было необходимо изменение размеров элементов GUI при изменении размеров окна, то устанавливал Height\Width в "Auto", предварительно задав значение Margin. Начал искать в MonoDevelop для объекта GTK.Button аналогичные свойства, нашел Xalign и Yalign, описание действия которых следующее:
Цитата:
gfloat xalign; the horizontal alignment, from 0 (left) to 1 (right).
gfloat yalign; the vertical alignment, from 0 (top) to 1 (bottom).
Т.е.(мой вольный перевод):
Цитата:
gfloat xalign; горизонтальное выравнивание от нуля(по левому краю) до единицы(по правому краю).
gfloat yalign; вертикальное выравнивание от нуля(по верхнему краю) до единицы(по нижнему краю).
Хорошо, ставлю у кнопки значение свойства XAlign в 1(по умолчанию оно равно 0,5), выполняю очистку проекта(в VS иногда проблемы возникают при небольших правках кода без очистки), заново собираю, компилирую приложение и запускаю. Меняю размеры формы - выравнивание как было по левому краю, так и осталось!!! Приблизительно дня два искал по сети причины такого поведения, но ни черта не нашел. В GTK# есть такой объект как Alignment(Выравнивание), но и с ним такая же ерунда, хотя его имя говорит само за себя. И такое поведение наблюдается не только для объекта Gtk.Button.
Подскажите пожалуйста, что не так, может быть я не правильно понимаю назначение полей XAlign и YAlign, но тогда какие свойства используются для ориентации?
На всякий случай: использую GTK# for .NET 2.12.10 и MonoDevelop 3.0
Из всех классических книг, посвященных программированию, ненавижу всего одну - русский перевод книги Роберта Седжвика-"Фундаментальные алгоритмы C++". Предпочитаю читать её в оригинале.
Mixim вне форума Ответить с цитированием
Старый 18.06.2012, 11:14   #2
Mixim
Форумчанин
 
Регистрация: 29.10.2009
Сообщений: 259
По умолчанию

Сурово, прошло более полу-месяца с момента создания темы, а ответов так и нет. Ладно, нашел по моему мнению топорный, крайне топорный метод для горизонтального выравнивания элементов, т.к. ничего "прямого" найти не смог.
Бросаем на форму объект Table, в ячейку которого помещаем объект Alignment, в котором устанавливаем свойства для растяжения и заполнения(это все располагается не в стандартном меню со свойствами, а над окном в котором разрабатываем GUI). Теперь бросаем туда нужный элемент, устанавливаем границы и собственно все.
Приведенная методика не стремиться на какую либо универсальность, мне самому она безумно не нравиться, но видимо другого пути в Gtk# попросту нет.
Когда несколько лет назад только начинал знакомиться с WPF и на различных конференциях докладчики говорили:"WPF упрощает разработку GUI..." думал, что все это я спокойно смогу сделать и в WindowsForms, но оказывается нет. Gtk# представляет как раз аналог WindowsForms, не имеющий практически ничего общего с моей любимой WPF.
Ладно, буду рыть в сторону Glade. Надеюсь, что мои земляные работы будут успешны
Эх, как мне не хватает языка XAML и стандартных свойств WPF-компонентов в Gtk#.
Из всех классических книг, посвященных программированию, ненавижу всего одну - русский перевод книги Роберта Седжвика-"Фундаментальные алгоритмы C++". Предпочитаю читать её в оригинале.
Mixim вне форума Ответить с цитированием
Старый 13.03.2015, 14:41   #3
D][mon
Форумчанин
 
Регистрация: 05.01.2010
Сообщений: 150
По умолчанию

по настоящему сурово то, что на stackoverflow видел похожий вопрос, и чувак отписался, что у него присваивание xalign в 1 сработало.
а у меня тоже не сработало.
может xamarin проверяет локаль системы, и в зависимости от этого эта фича работает/не работает :D ?
D][mon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
горизонтальная гистограмма Максикок Помощь студентам 8 25.03.2011 05:14
Ориентация текста в Edit MyLastHit Общие вопросы Delphi 6 07.12.2010 23:06
Ориентация текста в ячейке Kserks777 Microsoft Office Excel 3 25.07.2010 23:28
Разметка страницы. Ориентация maksim_serg Microsoft Office Word 2 01.04.2010 04:47
ориентация треугольника Orodret Общие вопросы C/C++ 11 09.06.2009 02:10