2383 / 452 / 116
Регистрация: 26.09.2020
Сообщений: 834
|
|||||||||||
WPF Шаблон окна xaml20.07.2023, 08:42. Показов 1089. Ответов 19
Кликните здесь для просмотра всего текста
0
|
20.07.2023, 08:42 | |
Ответы с готовыми решениями:
19
Шаблон в XAML Доступ в xaml шаблон из кода
|
Модератор
![]() ![]() |
||||||||||||||||||||
20.07.2023, 09:12 | ||||||||||||||||||||
![]() Решение
Экземпляры команд, не являющиеся свойствами других объектов, следует реализовывать как Синглтон. Пример - все дефолтные системные команды Библиотека команд | ProfessorWeb, C# и WPF | Команды - Metanit. При создании в Шаблоне - экземпляр команды может пересоздаваться для каждого элемента использующего Шаблон. Что "не есть хорошо".
1
|
2383 / 452 / 116
Регистрация: 26.09.2020
Сообщений: 834
|
|||||||||||
20.07.2023, 11:07 [ТС] | |||||||||||
Элд Хасп, так не работает
указывает на эту строчку: <cmd:ApplicationShutdownCommand x:Key="AppExit"/> А cmd:CommandHelper.ApplicationShutdown я не умею CommandHelper.
0
|
Модератор
![]() ![]() |
||
20.07.2023, 11:59 | ||
iNNOKENTIY21, полный XAML дайте. Здесь важна компоновка, так от неё зависят зоны видимости ресурсов имён..
Добавлено через 1 минуту Добавлено через 54 секунды iNNOKENTIY21, лучше будет, если зальёте решение в новый репозиторий на GitHub и дадите ссылку на него.
0
|
2383 / 452 / 116
Регистрация: 26.09.2020
Сообщений: 834
|
|
20.07.2023, 13:06 [ТС] | |
Элд Хасп, сработало контекстное меню, а вот сочетание клавиш не срабатывает как будто и не задавали, ошибок нет.
Ту ошибку «Нельзя создать неизвестный тип» выдаёт, если свойства generic.xaml: действия при сборке Содержание и Копировать при сборке всегда. А стиль окна в generic.xaml.
0
|
Модератор
![]() ![]() |
|||||||||||||||||||
20.07.2023, 23:19 | |||||||||||||||||||
iNNOKENTIY21, на будущее - показывайте РЕШЕНИЕ, а не проект.
Добавлено через 6 минут Возьмите базовый класс команд отсюда: Простые реализации для тем на форуме Добавлено через 13 минут Нормальная реализация команды выхода из приложения:
Замените TextBlock на TextBox и всё будет нормально работать. Добавлено через 14 минут Лучше замените его на XamlResources/DefaultStyles.xaml и подключите в App:
1
|
2383 / 452 / 116
Регистрация: 26.09.2020
Сообщений: 834
|
||
21.07.2023, 02:24 [ТС] | ||
Элд Хасп, спасибо. Я конечно на
![]()
0
|
Модератор
![]() ![]() |
||||||||
21.07.2023, 12:00 | ||||||||
Команда - преимущественно используется в свойствах VM. И с вашей реализацией придётся для каждого свойства, создавать новый тип команды. Что касается уровня View, то на нём преимущественно используются RoutedCommand. Обычные команды (которые сразу исполняются), конечно, тоже можно использовать, но это как-то реже бывает. Чаще в View для действий используют кликеры. Добавлено через 2 минуты С Шаблоном это не сработает. Добавлено через 5 минут Можно попробовать передать фокус в на Border - не могу сказать сработает это или нет. У меня нет сейчас (на работе) компа со Студией - проверьте сами.
iNNOKENTIY21, задать в шаблоне InputBindings самому элементу невозможно. Если ОЧЕНЬ хочется, то придётся для этого создать AP-свойство. Вечером, если не забуду, покажу как это делается.
0
|
Модератор
![]() ![]() |
||
21.07.2023, 14:07 | ||
Окна подхватывают стиль из темы который задан в сборке с Окнами. В любом случае придётся как-то устанавливать ваш стиль во все открываемые окна. Так же вы используете Framework, а актуальная сейчас платформа это .Net6+ (Core). И эти аспекты могут по разному для них работать. Например, ресурсы Generic.xaml в Core будут, вообще, недоступны. Вы не сможете их вытащить через StatiResource. В том числе, поэтому я предложил вам вариант явной установки в App.Resources. Это типовой для WPF подход.
0
|
Модератор
![]() ![]() |
|||||||||||
21.07.2023, 20:56 | |||||||||||
iNNOKENTIY21, пример реализации AP-свойства для привязки команды к Ctrl-Q:
1
|
Модератор
![]() ![]() |
||||||
21.07.2023, 20:58 | ||||||
Принудительное применение стиля по умолчанию ко всем Окнам:
1
|
Модератор
![]() ![]() |
|||
21.07.2023, 23:53 | |||
Substring(3) Добавлено через 38 секунд Добавлено через 4 минуты По соглашению методы AP-свойства должны быть составлены из префикса Get/Set и имени свойства. Я для уменьшения случайных ошибок получаю имя свойства из имени метода отсечением префикса.
0
|
Модератор
![]() ![]() |
|
22.07.2023, 00:50 | |
0
|
Модератор
![]() ![]() |
||
22.07.2023, 00:54 | ||
Общие сведения о присоединенных свойствах - WPF .NET
Добавлено через 58 секунд Это уже "умирающая" платформа. Учитесь на актуальной.
0
|
2383 / 452 / 116
Регистрация: 26.09.2020
Сообщений: 834
|
|||||||||||
15.10.2023, 01:27 [ТС] | |||||||||||
Прикрутил мышь в шаблон, по типу:
CommandsHelper.cs
0
|
15.10.2023, 01:27 | ||||||
Помогаю со студенческими работами здесь
20
WPF(XAML) анимация сокрытие окна
Подгрузить (и прикрепить) готовый xaml с жёсткого диска, к созданному экземпляру окна Передача обьекта xaml в другой обьект xaml Вызов функции из mainWindow.xaml.cs в App.xaml.cs Искать еще темы с ответами Или воспользуйтесь поиском по форуму:
|
|
Новые блоги и статьи
![]() |
||||
Логирование в C# ASP.NET Core с помощью Serilog, ElasticSearch, Kibana
stackOverflow 25.04.2025
Помните те времена, когда для анализа проблемы приходилось подключаться к серверу, искать нужный лог-файл среди десятков других и вручную фильтровать тысячи строк в поисках ошибки? К счастью, эти дни. . .
|
Полностью асинхронный счётчик на логике (сумматорах) трёх состояний и асинхронных регистрах трёх состояний. Структура "электронный Buttom Up"
Hrethgir 25.04.2025
Программа для симуляции схемы - Logisim Evolution
В общем какое-то время отвлёкся, так было надо, теперь когда запилю это на verilog и FPGA , досоставлю заявку в ФИПС на полезную модель - не готов. . .
|
Автоматизация Amazon Web Services (AWS) с Boto3 в Python
py-thonny 25.04.2025
Облачные вычисления стали неотъемлемой частью современной ИТ-инфраструктуры, а Amazon Web Services (AWS) занимает лидирующие позиции среди провайдеров облачных услуг. Управление многочисленными. . .
|
Apache Kafka vs RabbitMQ в микросервисной архитектуре
ArchitectMsa 25.04.2025
Современная разработка ПО всё чаще склоняется к микросервисной архитектуре — подходу, при котором приложение разбивается на множество небольших, автономных сервисов. В этой распределённой среде. . .
|
Параллельное программирование с OpenMP в C++
NullReferenced 24.04.2025
Параллельное программирование — подход к созданию программ, когда одна задача разбивается на несколько подзадач, которые могут выполняться одновременно. Оно стало необходимым навыком для. . .
|
Цепочки методов в C# с Fluent API
UnmanagedCoder 24.04.2025
Современное программирование — это не только решение функциональных задач, но и создание кода, который удобно поддерживать, расширять и читать. Цепочки методов и Fluent-синтаксис в C# стали мощным. . .
|
Мульти-тенантные БД с PostgreSQL Row Security
Codd 23.04.2025
Современные облачные сервисы и бизнес-приложения всё чаще обслуживают множество клиентов в рамках единой программной инфраструктуры. Эта архитектурная модель, известная как мульти-тенантность, стала. . .
|
Реализация конвейеров машинного обучения с Python и Scikit-learn
AI_Generated 23.04.2025
Мир данных вокруг нас растёт с каждым днём, и умение эффективно обрабатывать информацию стало необходимым навыком. Специалисты по машинному обучению ежедневно сталкиваются с задачами предобработки. . .
|
Контроллеры Kubernetes Ingress: Сравнительный анализ
Mr. Docker 23.04.2025
В Kubernetes управление входящим трафиком представляет собой одну из ключевых задач при построении масштабируемых и отказоустойчивых приложений. Ingress — это API-объект, который служит вратами. . .
|
Оптимизация кода Python с Cython и Numba
py-thonny 23.04.2025
Python прочно обосновался в топе языков программирования благодаря своей простоте и гибкости. Разработчики любят его за читабельность кода и богатую экосистему библиотек. Но у этой медали есть и. . .
|