Вот, как сейчас выглядит главное окно моей программы. Сегодня добавил кнопки максимизации и минимизации окна, некоторые настройки заголовка. И вот что меня снова удивило в авалонии: оказалось, что стандартного свойства контрола окна «ResizeMode», как в WPF XAML, там нет. Вместо этого в авалонии определено свойство «CanResize», при задании значения которого в False, возможность изменять размеры окна будет неактивна. Но это ещё не все сюрпризы...
Логично было бы предположить, что для контрола окна должно быть определено свойство «CanMinimize», раз уж отказались от свойства «ResizeMode». Но к немалому моему удивлению ничего подобного там не оказалось! Это свойство тупо забыли добавить разработчики авалонии! Как так можно, я не понимаю. А какими причинами разработчики этой авалонии руководствовались, когда «забыли» добавить контрол «GroupBox». Тоже непонятно. Вот мне и приходиться доделывать их работу, добавлять то, что должно быть в наличии уже из коробки. Ну да ладно, фиг с этим. Также не было и свойства окна «WindowStyle», определяющее стиль для заголовка окна: обычное окно, узкая рамка для диалогов и отсутствие заголовка. Также пришлось выковывать своё решение. Ладно, выковал. В WPF оно работало неважно. Я сделал своё и конечно лучше. Всегда стремитесь к совершенству! Ибо созданный тобой идеал греет твою душу и настилает чувство удовлетворения от исполненного желания. Ну да ладно. Куда-то меня в сторону философии потянуло. Да, кстати, после этой статьи у меня как раз намечается написание философской статьи. Так, вернемся к нашей теме.
Сегодня остановился на том, что начал создавать пользовательский контрол, который я назвал «HeaderedBox». Это контейнер с заголовком, где содержится иконка, текст заголовка и кнопка закрытия этого контейнера.
В общем, за день успел сделать мало. День приходится распиливать на две части: первая половина - программа, вторая половина - блог. Роятся мысли в голове, что пока что придется сосредоточиться на чем то одном. Вопрос только: на чем?
Да, работы над макетом окна предстоит ещё не мало. Нужно сделать так, что данные о размерах, состоянии и положении окна сохранялись, а затем при запуске программы автоматически применялись. Надо реализовать если хоть не стыкуемый комплекс настраиваемых панелей, но хотя бы макет с возможностью показа и скрытия этих контейнеров.
Вот участок кода представления контрола «DesktopPage». Этот контрол стал заменой того, что я сначала хотел сделать, то есть контрол, расширяющий возможности самого окна. Но, увы, облом. Сделать это у меня не получилось. Досада, конечно, но что делать. Не всегда всё получается. Как-то это можно сделать, это должно работать. Но не хочется сейчас тратить на это дни времени. Будем продолжать работу.

