Написал интерфейс в XAML. До этого пользовался только Windows Form.
Возникло несколько вопросов:
Как сглаживать изображения? На скриншоте может не особо заметно, но картинки выглядят угловато и это не очень то и красиво.
Кнопки тут у меня, в отличии от WinForm, почему-то выглядят не очень симпатично.
Как убрать стрелку для элементов не влезающих в тулбар?
Как растянуть объект по оставшемуся свободному месту независимо от содержимого. Конкретно TextBox не принимает значение ширины "*" или
"Star".
Если вы найдёте в коде ещё какие недочёты, то буду благодарен совету о том, как их исправить. Ибо первый раз работаю и много не знаю.
P.S. Учебник по WPF читаю, но программу надо бы сделать чем раньше, тем лучше, поэтому ждать пока дочитаю и во всём разберусь ждать не приходится.
UPD: Внёс правки в XAML согласно рекомендациям @VladD и ещё одного пользователя, ник которого я не запомнил, а свой ответ он успел удалить.
Ответ
Сглаживать растровые изображения не нужно. Либо используйте изображение в нативном размере (вот тут много хороших советов), либо переходите наконец на современные технологии и используйте векторные изображения.
Кнопки в WPF стилизуются в зависимости от операционной системы. Попробуйте запустить ту же программу на старой системе, думаю, что будет выглядеть так, как вы хотите.
Убрать overflow grip проще всего, отредактировав шаблон (правая кнопка мыши в визуальном редакторе в Visual Studio 2015+), есть решение с code-behind здесь
Если вам нужен Toolbar без overflow и с кастомным лэйаутом, используйте вместо него просто DockPanel
Теперь по коду:
Вы не используете MVVM. У вас данные жёстко прописаны в UI. Это неправильно, нужно отделять контент от представления и брать данные из VM. Например, список статусов и возможные оценки — точно не сфера компетенции UI. Заодно и код получится проще:
и исчезнет дубляж списка оценок.
Grid с семью строками и шестью столбцами кажется неоправданно сложным. Я бы поместил Main title name и Second title name в StackPanel или там DockPanel вместе с остатком, а остаток (Эпизодов/Статус/Оценка) положил в Grid с двумя столбцами и тремя строками.
Ну и поскольку всего на странице много, я бы разбил на маленькие осмысленные UserControl'ы.
Комментариев нет:
Отправить комментарий