Статьи с тегом «WPF»
Статьи с тегом «WPF» (16 шт.), от новых к старым.
-
«Не отвечает»: как Windows определяет зависание и как проектировать так, чтобы оно не возникало
«Не отвечает» в Windows — это решение ОС: окно 5 секунд не извлекает сообщения, и система подменяет его фантомным окном. Разбираем критерий, типичные причины...
-
Буфер обмена и перетаскивание: OLE-передача данных в бизнес-приложениях
Таблица из Excel вставляется «криво», а после закрытия исходного приложения вставить уже нельзя — оба случая объясняются тем, что буфер обмена держит одно и ...
-
Доступность приложений Windows: UI Automation и разумное приспособление
На фоне поправки к Закону Японии об устранении дискриминации в отношении инвалидов, вступившей в силу в апреле 2024 года, статья на практике разбирает UI Aut...
-
CI/CD для WinForms / WPF: сборка, подпись и распространение в GitHub Actions
Практическое руководство по CI/CD для WinForms / WPF в GitHub Actions. Минимальный YAML сборки и тестов на windows-latest, нумерация версий по тегам, подпись...
-
Значок в области уведомлений и toast в Windows-приложении: ошибки NotifyIcon и выбор AppNotification
Разбираем, как держать бизнес-приложение Windows в области уведомлений и показывать toast. Правильная работа с NotifyIcon, повторная регистрация после переза...
-
Локализация WinForms и WPF: resx, спутниковые сборки, переключение культуры
Разбираем локализацию десктопных приложений Windows: чем CurrentCulture отличается от CurrentUICulture, как устроены resx и спутниковые сборки, какой способ ...
-
Печать и PDF в Windows-приложениях: PrintDocument, WPF и библиотеки отчётов
Печать WinForms через PrintDocument, печать WPF через FlowDocument и FixedDocument и варианты вывода PDF сведены в таблицу по требованиям. Разбираются разрыв...
-
Аутентификация Entra ID в WinForms и WPF: MSAL.NET и брокер WAM
Как добавить вход через Entra ID в десктопное приложение WinForms или WPF: общедоступный клиент, регистрация приложения, AcquireTokenSilent в MSAL.NET, броке...
-
UI-автотесты десктопных приложений Windows — UI Automation и устойчивые тесты на FlaUI
Разбираем UI-автотесты WinForms и WPF с устройства Windows UI Automation. Минимальная реализация на FlaUI, AutomationId и ожидание по условию, чтобы тесты не...
-
Высокий DPI в WPF — почему «к DPI должен быть готов», а на деле всё размывается
WPF по умолчанию System DPI Aware, но при переносе окна на монитор с другим DPI всё изображение размывается, а растр теряет резкость. Разбираем диагностику, ...
-
После режима IE — подойдёт ли WebView2? Ограничение ActiveX и реалистичный план миграции
С точки зрения внутренних корпоративных систем разбираем устройство WebView2, стратегии распространения Evergreen и Fixed Version, типичную ошибку с папкой п...
-
Что продумать перед заказом разработки Windows-приложения
Перед заказом разработки Windows-приложения разберём, что стоит прояснить: доработка существующего ПО, интеграция с оборудованием, COM/ActiveX, развёртывание...
-
WinForms, WPF или WinUI: практическая таблица выбора
Как выбрать WinForms, WPF или WinUI: новая разработка, существующий код, распространение, выразительность UI и устройство команды.
-
Три таймера .NET: как выбирать PeriodicTimer, Timer и DispatcherTimer
Чем отличаются PeriodicTimer, System.Threading.Timer и DispatcherTimer и как выбирать между ними для async-работы, callback на ThreadPool и обновления UI в WPF.
-
Зачем использовать .NET Generic Host и BackgroundService в десктопных приложениях
Как с помощью Generic Host и BackgroundService собрать запуск, периодическую работу, завершение, логи, конфигурацию и DI в Windows-инструментах и фоновых при...
-
WPF и WinForms: async/await и поток UI
Куда после await возвращается выполнение в WPF и WinForms, как работают Dispatcher и Invoke, зачем ConfigureAwait(false) и почему .Result и .Wait() вешают UI.