Страницы

Поиск по вопросам

суббота, 22 февраля 2020 г.

Несколько вопросов по XAML (C#)

#c_sharp #wpf #xaml #gui


Написал интерфейс в XAML. До этого пользовался только Windows Form.

Возникло несколько вопросов:


Как сглаживать изображения? На скриншоте может не особо заметно, но картинки выглядят
угловато и это не очень то и красиво.
Кнопки тут у меня, в отличии от WinForm, почему-то выглядят не очень симпатично.
Как убрать стрелку для элементов не влезающих в тулбар?
Как растянуть объект по оставшемуся свободному месту независимо от содержимого. Конкретно
TextBox не принимает значение ширины "*" или
"Star".


Если вы найдёте в коде ещё какие недочёты, то буду благодарен совету о том, как их
исправить. Ибо первый раз работаю и много не знаю.

P.S. Учебник по WPF читаю, но программу надо бы сделать чем раньше, тем лучше, поэтому
ждать пока дочитаю и во всём разберусь ждать не приходится.





    
        
            
                
                    
                        
                    
                
                
                
                    
                        
                    
                
            
            
            
            
        
        
            
                
                
                    
                    
                    
                    
                        
                            
                            
                            
                            
                        

                        
                            
                            
                        

                        
                        
                            
                            
                            
                            
                            
                        

                        
                        
                            
                            
                        

                        
                        

                        
                        
                    
                
            
            
            
                


Ответы

Ответ 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'ы.

Комментариев нет:

Отправить комментарий