|
WPF: Effect, не затрагивающий детей
|
|||
---|---|---|---|
#18+
Хочу, грубо говоря, размазать все вокруг объекта. Например, применить BlurEffect на все содержимое Window кроме одной кнопки. Проблема в том, что эффект применяется ко всей области родителя. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2016, 14:32 |
|
WPF: Effect, не затрагивающий детей
|
|||
---|---|---|---|
#18+
вариант А) тебе нужно отделить кнопку от родителя, то есть форма будет состоять из 2 частей: 1) контент который будет размываться 2) поверх А. будет накладываться еще 1 прозрачный (не Transparent) контейнер с кнопкой вариант Б) Создаем Adorner, который будет содержать панель Rectangle с VisualBrush и кнопкой. Adorner будет накрывать собой форму, а размываться Rectangle. других идей у меня нет. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2016, 15:11 |
|
WPF: Effect, не затрагивающий детей
|
|||
---|---|---|---|
#18+
Вариант А не очень подходит, не хочу предъявлять дополнительных требований к компоновке формы, хочу постараться инкапсулировать поведение во внутреннем элементе (условно - кнопке). Вариант Б Roman Mejtesкоторый будет содержать панель Rectangle с VisualBrush и кнопкой. Adorner будет накрывать собой форму, а размываться Rectangle."Простите, кто на ком стоял?" (с) Профессор Преображенский, "Собачье сердце". Применить VisualBrush мне тоже в голову приходило, однако, в любом случае при попытке рисовать этой кистью что-то, что перекрывает область ее же рисования, то бишь при возникновении рекурсии, кисть вырубается и не рисует, что логично, в принципе. Однако твоя идея насчет адорнера оказалась интересной, правда я с ним до этого не работал - полез ковырять документацию. В итоге я не понял, как именно ты хотел скомпоновать (см. выше) элементы с адорнером, но наваял свой вариант адорнера: Код: c# 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. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43.
Белая подложка и Clip нужны из-за того, что если делать просто тупую рамку, размывание работает только по центру рамки, а у краев (по другую сторону которых как бы нет цвета) все остается контрастным, странно, но это так. При этом размывание вылезает за пределы рамки, то есть создает пятна на внутреннем элементе. В моем варианте с внешнего края идет размывание с белой подложкой, а по внутреннему краю - с продолжением визуальной копии исходного элемента, которая потом обрезается клипом. Ты подобную компоновку имел ввиду или другую? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2016, 01:06 |
|
|
start [/forum/topic.php?fid=21&fpage=12&tid=1440686]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
51ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 238ms |
total: | 387ms |
0 / 0 |