Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Silverlight сохранение скрина страницы
|
|||
|---|---|---|---|
|
#18+
Всем доброго времени суток. Моя проблема заключается в том, что когда я хочу сохранить рисунок canvas в JPEG. Я сначала создаю Bitmap, а потом перевожу в JPEG, используя FJ.Core. В принципе делается это так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Всё вроде как хорошо должно быть и на канве всё отображается, но проблема заключается в том, что при сохранении напрочь теряются все grid с разметкой и стили в UserControl. В результате от контрола остаётся только image сведённые в одну точку. Подскажите как с этим можно справится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2011, 16:07 |
|
||
|
Silverlight сохранение скрина страницы
|
|||
|---|---|---|---|
|
#18+
Dok-Sergey, Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2011, 16:41 |
|
||
|
Silverlight сохранение скрина страницы
|
|||
|---|---|---|---|
|
#18+
авторWriteableBitmap bmp = new WriteableBitmap((int)cnv. ActualWidth , (int)cnv. ActualHeight ); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2011, 16:42 |
|
||
|
Silverlight сохранение скрина страницы
|
|||
|---|---|---|---|
|
#18+
может попробовать ImageTools for Silverlight library ? работающий пример (png, но в библиотеке есть сборка ImageTools.IO.Jpeg) - http://www.codeproject.com/KB/silverlight/SilverlightScreenCapture.aspx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2011, 16:45 |
|
||
|
Silverlight сохранение скрина страницы
|
|||
|---|---|---|---|
|
#18+
Руки-крюки, Я не совсем всё написал, так что значение размеров канвы устанавливаются и значение cnv.ActualWidth и cnv.ActualHeight не равны 0. Это точно. Дело в том, что пример этот что я написал рабочий. Единственно, что при добавлении именно UserControl в канву возникают с ним проблемы. LR, посмотрю, спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2011, 16:58 |
|
||
|
Silverlight сохранение скрина страницы
|
|||
|---|---|---|---|
|
#18+
Вместо первых трех строк Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2011, 16:59 |
|
||
|
Silverlight сохранение скрина страницы
|
|||
|---|---|---|---|
|
#18+
i, Да можно и так, но проблему это не решает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2011, 16:59 |
|
||
|
Silverlight сохранение скрина страницы
|
|||
|---|---|---|---|
|
#18+
Проблема именно при переводе из канвы в WriteableBitmap. Именно в этот момент что-то происходит. Если сделать: Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2011, 17:09 |
|
||
|
Silverlight сохранение скрина страницы
|
|||
|---|---|---|---|
|
#18+
Зачем ты его еще в канву добавляешь? Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2011, 17:35 |
|
||
|
Silverlight сохранение скрина страницы
|
|||
|---|---|---|---|
|
#18+
i, Код: plaintext 1. Функция ToImage() у меня показывает что её нет. А добавляю я в канву просто чтобы видно было. И похоже я разобрался в чём дело. При сохранении в картинку я в той же функции добавляю объекты на канву, что типа: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. При это похоже не срабатывает внутренний конструктор (что типа внутреннего Loaded), который и должен выстраивать всё по XAML разметке. Ну а потом на экране мы видим нормальную картинку со всеми изменениями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2011, 18:10 |
|
||
|
Silverlight сохранение скрина страницы
|
|||
|---|---|---|---|
|
#18+
Твой контрол не успевает отрисоваться. Сделай сохранение в обработчике OnLoad последнего элемента. ЗЫ ToImage() - метод расширения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2011, 18:56 |
|
||
|
Silverlight сохранение скрина страницы
|
|||
|---|---|---|---|
|
#18+
i, да это делать и буду, спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2011, 20:18 |
|
||
|
Silverlight сохранение скрина страницы
|
|||
|---|---|---|---|
|
#18+
Dok-Sergey, не не, автор, дело в том, что Актуальные размеры контролов не известны до вызова Диспетчера, нужно так: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2011, 21:17 |
|
||
|
Silverlight сохранение скрина страницы
|
|||
|---|---|---|---|
|
#18+
уТКа, Актуальные размеры известны, можно это увидеть при отладке. Ну а если использовать код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. То сохранение не происходит, так как bmp = null. Не успевает Диспетчер сработать похоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2011, 10:18 |
|
||
|
Silverlight сохранение скрина страницы
|
|||
|---|---|---|---|
|
#18+
Нашлось простое решение данной проблемы: Код: plaintext 1. То есть теперь просто пишем так и будет вам счастье, и мне тоже :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2011, 10:29 |
|
||
|
Silverlight сохранение скрина страницы
|
|||
|---|---|---|---|
|
#18+
Некоторые замечания по сохранению: - не пытайтесь создавать канву и добавлять в неё и сразу сохранять, результат: проблема с разметкой; - если у канвы стоит Visibility = Collapsed, результат аналогичный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2011, 11:34 |
|
||
|
|

start [/forum/topic.php?fid=21&msg=37145031&tid=1442428]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
66ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 258ms |
| total: | 431ms |

| 0 / 0 |
