|
25 / 25 / 4
Регистрация: 21.01.2019
Сообщений: 407
|
|||||||||||
Вывод на печать изображения MVVM09.02.2024, 15:47. Показов 5131. Ответов 69
Есть у меня в модели такой вот простой метод:
![]() Добавлено через 23 минуты Не PrintDialog, а PrintVisual я имел ввиду...
0
|
|||||||||||
| 09.02.2024, 15:47 | |
|
Ответы с готовыми решениями:
69
Вывод на печать изображения
|
|
Модератор
|
||||||
| 12.02.2024, 13:56 | ||||||
|
А вот насколько нужно их их VM вызывать - это уже вопрос. Я бы на уровне View всё оставил. Добавлено через 28 секунд Чтобы что-то использовать в XAML - это "что-то" нужно сначала написать на Шарпе. Добавлено через 2 минуты Чтобы что-то использовать в XAML - это "что-то" нужно сначала написать на Шарпе. Например, в обработчике может быть вызов метода VM который возвращает какой-то результат (что невозможно для команды) и на этот результат представление по разному будет реагировать. Вот такой обработчик нечем не нарушает MVVM. Добавлено через 1 минуту Другое дело, что VM лучше стараться реализовывать так чтобы в подобном не было необходимости. Но это уже рекомендация, а не концептуальный запрет.
1
|
||||||
|
25 / 25 / 4
Регистрация: 21.01.2019
Сообщений: 407
|
|
| 12.02.2024, 14:02 [ТС] | |
|
0
|
|
|
364 / 296 / 55
Регистрация: 08.04.2020
Сообщений: 1,175
|
|
| 12.02.2024, 14:10 | |
|
Элд Хасп, Информативно и подробно)
0
|
|
|
Модератор
|
||
| 12.02.2024, 14:28 | ||
|
Печать в WPF - это всегда печать какого-то Visual. Соответственно нужно сделать кнопку со всплывающей командой ApplicationCommands.Print. Нацелить источник или параметр команды на нужный Visual (в данном случае ваш Image). В Окне отловить эту команду через CommandBinding в Execute которого задан статический обработчик из хелпера.Добавлено через 2 минуты Можно сделать контекстное меню для вашего Image с той же логикой. Добавлено через 2 минуты ApplicationCommands.Print можно заменить на статическую команду в хелпере, которая получит из параметра Visual и распечатает его.
1
|
||
|
25 / 25 / 4
Регистрация: 21.01.2019
Сообщений: 407
|
|
| 12.02.2024, 14:29 [ТС] | |
|
Элд Хасп, Спасибо, попробую разобраться как это сделать
0
|
|
|
Модератор
|
|||||||
| 12.02.2024, 14:37 | |||||||
Это в самом простом виде. К нему можно добавить ещё различные "навороты". В первую очередь, советую добавить расширение разметки.
1
|
|||||||
|
25 / 25 / 4
Регистрация: 21.01.2019
Сообщений: 407
|
|||||||||||
| 12.02.2024, 15:26 [ТС] | |||||||||||
|
Элд Хасп, Поскажите пожалуйста где найти реализацию RelayCommand с аргументами типа, я использую вашу, но только эту:
И еще вот вопрос как указать визуальный элемент в качестве источника?
0
|
|||||||||||
|
364 / 296 / 55
Регистрация: 08.04.2020
Сообщений: 1,175
|
|||||||||||
| 12.02.2024, 15:45 | |||||||||||
|
firnen_dragon, что такое аргументы в этом случае?
Параметры команды передаете как CommandParameter, это может быть хоть что.
1
|
|||||||||||
|
25 / 25 / 4
Регистрация: 21.01.2019
Сообщений: 407
|
|||||||||||
| 12.02.2024, 16:18 [ТС] | |||||||||||
|
xellan24rus, Похоже я вопрос неправильно сформулировал. У меня Image просто в Xaml окна находится(не в ресурсах), там нет x:Key, в этом случае что мне нужно сделать чтобы я мог задать его как ресурс в кнопке?
И я не до конца понимаю как мне забиндить в CommandBindings Execute тоже, по моему я какую-то фигню понаписал:
0
|
|||||||||||
|
364 / 296 / 55
Регистрация: 08.04.2020
Сообщений: 1,175
|
||||||||||||||||
| 12.02.2024, 16:30 | ||||||||||||||||
|
firnen_dragon, понял, не заметил что вы используете
Добавлено через 27 секунд Должно получиться, отпишите результат) Добавлено через 2 минуты
1
|
||||||||||||||||
|
25 / 25 / 4
Регистрация: 21.01.2019
Сообщений: 407
|
||
| 12.02.2024, 16:37 [ТС] | ||
|
Добавлено через 2 минуты Все работает если так ElementName=image
0
|
||
|
364 / 296 / 55
Регистрация: 08.04.2020
Сообщений: 1,175
|
|
| 12.02.2024, 16:40 | |
|
firnen_dragon, понял, хорошо что разобрались)))
1
|
|
|
25 / 25 / 4
Регистрация: 21.01.2019
Сообщений: 407
|
|
| 12.02.2024, 16:41 [ТС] | |
|
xellan24rus, Спасибо большое
1
|
|
|
364 / 296 / 55
Регистрация: 08.04.2020
Сообщений: 1,175
|
||
| 12.02.2024, 16:44 | ||
|
2
|
||
|
Модератор
|
||||||||||
| 12.02.2024, 17:31 | ||||||||||
|
Добавлено через 31 секунду Класс RelayCommand<T>Добавлено через 1 минуту Если для RoutedCommand, то ещё и в CommandTarget. Добавлено через 1 минуту Добавлено через 1 минуту
1
|
||||||||||
|
25 / 25 / 4
Регистрация: 21.01.2019
Сообщений: 407
|
|||||||||||
| 12.02.2024, 18:15 [ТС] | |||||||||||
|
Элд Хасп, Спасибо)
Добавлено через 32 минуты Элд Хасп, Последний вопросик спрошу, а если у менят 2 режима печати, в зависимости от режима будут меняться размеры картинки, а какой сейчас режим я могу понять только проверив свойство в VM, получается появляется смыл вызывать сервис печати из VM?
0
|
|||||||||||
|
Модератор
|
|||
| 12.02.2024, 18:50 | |||
|
Здесь лучше подойдёт RoutedCommand. CommandTarget - указывает на элемент который нужно распечатать. CommandParameter - на свойство VM. Добавлено через 5 минут firnen_dragon, опять таки, имейте ввиду, что речь идёт о ПРАВИЛЬНОЙ реализации. Но если хочется "срезать углы", то можно и из VM вызывать. Тогда к печатному диалогу следует относится как к любому другому диалогу. Здесь проблема только с передачей Visual. Можно конечно его скрыть за object - типа это печать не только Visual, но и любого объекта. Но, по мне, смотрится такое решение очень криво. Добавлено через 24 минуты
1
|
|||
|
25 / 25 / 4
Регистрация: 21.01.2019
Сообщений: 407
|
|||||||||||||||||||
| 12.02.2024, 18:57 [ТС] | |||||||||||||||||||
Добавлено через 3 минуты
0
|
|||||||||||||||||||
|
364 / 296 / 55
Регистрация: 08.04.2020
Сообщений: 1,175
|
||||||||||||||
| 12.02.2024, 20:19 | ||||||||||||||
|
Возможно я в чем то не прав, но я это понимаю так для себя.
1
|
||||||||||||||
|
Модератор
|
||
| 12.02.2024, 22:34 | ||
|
Сегодня занят. Покажу как будет время.
1
|
||
| 12.02.2024, 22:34 | |
|
Вывод на 3D-печать векторного изображения брелка. [MVVM] Вставка изображения в RichTextBox
Печать изображения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|