Вот, сегодня посвятил день тому, чтобы реализовать динамическую (без перезапуска всей программы) смену темы оформления интерфейса и локализации. А также изменения видимости панелей макета окна с помощью пунктов главного меню, где я разместил чекбоксы с привязанными на них свойствами видимости этих панелей. Ну последнее получилось хорошо, день сегодня начался с неплохих результатов в этом направлении. Да и смена локализации тоже работает неплохо, в принципе задумка удалась, кроме одно оговорки. Когда локализация меняется, длины строк надписей меняются. Вследствие этого возникал "косяк", при котором менялась позиция открытого меню. Пришлось от этого избавиться, принудительно закрывая меню после того, как щелкнешь по элементу с выбором локализации. Но вот, что обнаружилось далее, ввело меня в разочарование.
С динамической смены темы оформления получилась подстава. И снова виноваты в этом разработчики Авалонии. Я два часа времени потратил на то, чтобы разобраться, почему при попытки переопределить файл стилей с оформлением интерфейса случается краш программы и она вырубается. Блин! Это оказывается возникает вследствие повторного открытия пунктов меню, которые открывались до применения смены оформления. То есть открываю пункт меню "Вид", применяю смену темы оформления, тема применяется. После того, как снова пытаюсь открыть пункт меню "Вид" - программа ломается! И с другими пунктами меню тоже самое! Вот ерунда-то какая! Вот буквально сейчас у меня засветилась идея! Идея, как это можно (попытаться) исправить. Сейчас прямо попробую и напишу результат...
Есть, ура! Проблема решена! Идея оказалась просто гениальной! Вот придет же в голову светлая мысль, которая решит проблему, над которой корячился целый день! Теперь программа не вырубается, оформление применяется хорошо. Всё. Теперь я спокоен. Блин, а ведь эта мысль могла мне и не придти в голову, и завтра я бы продолжал мучаться над этой проблемой. А вот, решение пришло тогда, когда я писал этот пост.
Теперь всё в порядке и можно заканчивать работу на сегодня. Получилось опять на час дольше, чем планировал. Уже целую неделю не могу добраться до других своих занятий. Ну что ж, это, так скажем, издержки производства.
Ну а на завтра в планах у меня продолжить работу над стилизацией элементов интерфейса и над самим интерфейсом. Работа будет продолжена...


