|
171 / 106 / 51
Регистрация: 27.11.2015
Сообщений: 1,269
|
|
Склейщик фото (создание MVVM приложения)29.04.2019, 16:36. Показов 9175. Ответов 162
Метки нет (Все метки)
Тема создана как продолжение тем:
Привязать данные к кнопке System.Windows.Data Error: 40 Открыть 2 картинки, переместить, записать координаты используя команду с параметрами ScrollViewer по вертикали и горизонтали После выбора файла в диалоговом окне, разместить изображение из файла в canvas Подключить класс Bitmap Элд Хасп, я хотел бы после загрузки первого фото, поворачивать её и перемещать, в специальной графе будут отображаться начальные координаты первого фото (левого верхнего угла), и чтоб при загрузки они всегда были бы в верхнем левом углу, потом загружаю второе фото(в специальном месте отображаются координаты 2-ого фото левого верхнего угла), хотел бы так же поворачивать (сейчас после загрузки второго фото поворачиваются 2 картинки, а не вторая), и в специальном месте отображать смещение второго фото по сравнению с первым (так же, по левому верхнему углу). Я не очень понял на счет размеров, я хотел бы чтобы фото отображались во всю величину, но я не буду знать какого фото будут размера. Сейчас приложение ведет себя очень странно, копки стали действительно активны, спасибо! Но когда я пытаюсь их сдвинуть, значение меняется в Text="{Binding Offset}", только не обычно, влево/право - целые числа, а вверх/вниз меняются, сотые этого числа, при этом картинки сами не двигаются, ни первая, ни вторая...Добавлено через 2 минуты Элд Хасп, когда запускаю приложение, кнопка вверх и влево не активны, они становятся активны если кликнуть вправо/вниз Добавлено через 1 минуту Элд Хасп, задав жестко размер картинке, она деформируется
0
|
|
| 29.04.2019, 16:36 | |
|
Ответы с готовыми решениями:
162
Структура WPF приложения на MVVM
Паттерн MVVM или как писать приложения на WPF |
|
171 / 106 / 51
Регистрация: 27.11.2015
Сообщений: 1,269
|
|||||||
| 02.05.2019, 22:41 [ТС] | |||||||
|
Элд Хасп,
Я пока не переделывал view, то сейчас она выглядит так:
0
|
|||||||
|
Модератор
|
|
| 02.05.2019, 22:44 | |
|
Вроде VM почти готова.
Осталось сделать инициализацию и прослушку свойств FirstImage и SecondImage. Добавлено через 1 минуту Посмотрите тему "INPC и получение данных из Модели" в цикле Готовые решения, примеры и рекомендации начинающим на WPF [Элд Хасп]
1
|
|
|
171 / 106 / 51
Регистрация: 27.11.2015
Сообщений: 1,269
|
|
| 02.05.2019, 22:44 [ТС] | |
|
Элд Хасп, а где вообще правильнее делать в моей ситуации поворот и смещение, во view или vm?
0
|
|
|
Модератор
|
|||
| 02.05.2019, 22:48 | |||
|
С ними возможно сделать чисто в XAML, но будет очень неудобно пользоваться. Так как не будет кнопок. Добавлено через 2 минуты Да, её можно спрятать в CB окна, но она будет - пусть и не явно. Но с такой реализацией будет труднее работать.
0
|
|||
|
171 / 106 / 51
Регистрация: 27.11.2015
Сообщений: 1,269
|
||||||
| 03.05.2019, 16:43 [ТС] | ||||||
|
Элд Хасп, clr кидает мне много ошибок, типа той что была ранее (№40), я пытаюсь подключить команду на открытие фото, но нет реации, хотя при отладке, при запуске он заходит в команду, но при нажатии кнопки , не выполняется, опять что-то с пространством Имен((
0
|
||||||
|
171 / 106 / 51
Регистрация: 27.11.2015
Сообщений: 1,269
|
|
| 03.05.2019, 17:43 [ТС] | |
|
Элд Хасп, PhotoGluer.rar
0
|
|
|
Модератор
|
|
| 03.05.2019, 19:50 | |
|
ShmelVG, Вы торопитесь с созданием View.
Опыта, что бы пропускать какие-то шаги последовательности создания у Вас пока нет. Поэтому придерживайтесь, пока не наберётесь опыты, следующей последовательности:
В самой View надо создать
После создания и отладки View будет создаваться PhotoGluerVM. Добавлено через 1 минуту P.S. Пока занят. Попозже посмотрю Ваш проект и напишу по нему замечания.
0
|
|
|
171 / 106 / 51
Регистрация: 27.11.2015
Сообщений: 1,269
|
||
| 03.05.2019, 20:07 [ТС] | ||
|
Элд Хасп,
Я если честно совсем запутался, у меня там есть этот класс, который связывает по идее модель и вью, но я не очень понял зачем создавать в vm ещё несколько классов
0
|
||
|
Модератор
|
|||
| 03.05.2019, 23:18 | |||
|
Её создают в последнюю очередь. Я поэтому и пишу Вам, что поторопились. Распишу пошагово что и как делать надо. Что бы Вам понятно была. Посмотрите, что будет непонятно - поинтересуетесь.
0
|
|||
|
Модератор
|
|||||||||||||
| 03.05.2019, 23:24 | |||||||||||||
|
Класс ImageModify, вреде, нормально сделан. Теперь по канонам создания MVVM надо создавать View. ViewModel - это согласующее звено между View и Model. А так как View ещё нет, то согласовывать с чем неизвестно. Но возникает другая проблема. Свойства View надо к чему-то привязывать, но ViewModel ещё нет - замкнутый круг. Для выхода из этого круга создаётся интерфейс ViewModel. Это как некий стандарт для подключения View. Передав потом этот интерфейс разработчикам ViewModel можно быть уверенным, что View с ним будет нормально работать. В нашем случае интерфейс должен содержать все свойства VM обращённые к View и наследовать интерфейс INPC. Вот этот интерфейс. Находится он в пространстве PhotoGluer.ViewModels так как VM тоже должна иметь доступ к нему
1
|
|||||||||||||
|
Модератор
|
|||||||||||
| 03.05.2019, 23:51 | |||||||||||
|
Чтобы не загромождать View создадим словарь ресурсов куда вынесем все стили и шаблоны.
Пока впишем туда только один шаблон данных для ImageModify Словарь PhotoGluerDict
1
|
|||||||||||
|
Модератор
|
|||||||
| 04.05.2019, 00:09 | |||||||
ContentPresenter.И, кстати, я не понял, а зачем Вы Canvas заключили в StackPanel? Canvas в XAML
1
|
|||||||
|
Модератор
|
|||||||||||||||||
| 04.05.2019, 00:31 | |||||||||||||||||
|
Кнопки загрузки в параметрах должны получить какое изображение они будут загружать
Кнопки поворота должны получать в параметрах угол поворота
Осталось подключить ToggleButton. Стиль из поста с ToggleButton определим в словаре И сама кнопка с поясняющим текстом
Что непонятно пишите.
1
|
|||||||||||||||||
|
Модератор
|
||||||||||||||||||||||
| 04.05.2019, 13:35 | ||||||||||||||||||||||
|
Вообще-то, они должны создаваться до View и потом использоваться в View. Но у Вас View уже создана. Так, что я возьму за образец вид элементов в View и перенесу их в стили. Все стили будут в словаре. Сначала уже созданный стиль ContentPresenter для Canvas
1
|
||||||||||||||||||||||
|
Модератор
|
||||||||||||
| 04.05.2019, 14:19 | ||||||||||||
|
Чтобы была рамочка вокруг надо дополнить их Border
Общий Grid теперь выглядит так
1
|
||||||||||||
|
171 / 106 / 51
Регистрация: 27.11.2015
Сообщений: 1,269
|
||||
| 04.05.2019, 15:26 [ТС] | ||||
|
Элд Хасп,
Вот с ToggleButton я не разобрался, в этом месте, что нужно добавить в словарь, а что во view? Нужно ли создавать новый словарь и подключать его ко view?На данный момент ни одна из кнопок не работает по нажатии (дальше к стилям ещё не спускался, запнулся на этом месте)
0
|
||||
|
Модератор
|
|||||||||||||||||||||||||||
| 04.05.2019, 15:50 | |||||||||||||||||||||||||||
|
По-моему надо Left, Top и Angle вынести в отдельный класс.
1
|
|||||||||||||||||||||||||||
|
Модератор
|
|||||||
| 04.05.2019, 15:52 | |||||||
|
Словарь на данный момент
1
|
|||||||
| 04.05.2019, 15:52 | |
|
Склейщик MVVM и динамическое создание контролов MVVM и создание диалоговых окон Создание интерфейса в паттерне MVVM Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов.
Логика кажется понятной:
1. Находим ключевые слова.
2. Добавляем их на. . .
|
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302
Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
|