#c_sharp #wpf #xaml #gui
Написал интерфейс в XAML. До этого пользовался только Windows Form. Возникло несколько вопросов: Как сглаживать изображения? На скриншоте может не особо заметно, но картинки выглядят угловато и это не очень то и красиво. Кнопки тут у меня, в отличии от WinForm, почему-то выглядят не очень симпатично. Как убрать стрелку для элементов не влезающих в тулбар? Как растянуть объект по оставшемуся свободному месту независимо от содержимого. Конкретно TextBox не принимает значение ширины "*" или "Star". Если вы найдёте в коде ещё какие недочёты, то буду благодарен совету о том, как их исправить. Ибо первый раз работаю и много не знаю. P.S. Учебник по WPF читаю, но программу надо бы сделать чем раньше, тем лучше, поэтому ждать пока дочитаю и во всём разберусь ждать не приходится.UPD: Внёс правки в XAML согласно рекомендациям @VladD и ещё одного пользователя, ник которого я не запомнил, а свой ответ он успел удалить. Поиск...
Ответы
Ответ 1
Сглаживать растровые изображения не нужно. Либо используйте изображение в нативном размере (вот тут много хороших советов), либо переходите наконец на современные технологии и используйте векторные изображения. Кнопки в 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'ы.
Комментариев нет:
Отправить комментарий