|
Изменить предка ресурсов
|
|||
---|---|---|---|
#18+
Подскажите, можно ли привязаться к ресурсу DockPanel, и извлечь цвет фона для TextBlock Получилось сделать через прокси-элемент, но решение некрасивое. Код: xml 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2018, 02:14 |
|
Изменить предка ресурсов
|
|||
---|---|---|---|
#18+
refreg, У меня телерик либы. Однако я стиль вынужден выбирать и тыкать отдельно. Сначала для формы, потом докПанели, потом гриду на них. Т.е. не знаю почему, но нет наследования. Может и у вас так? Т.е. отдельный компонент или стиль и все потом на него ссылаются. Без вытаскивания. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2018, 07:34 |
|
Изменить предка ресурсов
|
|||
---|---|---|---|
#18+
Объявить у ресурса x:Key, и обращаться через StaticResource/DynamicResource. В принципе, через RelativeSource можно выйти на DockPanel, но из её ресурсов не получится вытащить стиль исключетельно посредством XAML, т.к. в вышеприведенном виде ключом ресурса является тип элемента, для которого задан стиль. Т.е. тут нужно прикручивать конвертер: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
и в разметке писать Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
можно, конечно, сделать свой binding extension для такого случая, но от вышеприведенной работы по извлечению ресурса это не избавит, просто она будет за кадром. Я бы не прибегал к таким извращениям, и просто бы использовал именованные ресурсы. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2018, 07:50 |
|
Изменить предка ресурсов
|
|||
---|---|---|---|
#18+
нафига это делать? чтоб они были одного цвета? сделайте элемент прозрачным. но лучший вариант. как уже написали, создать ресурс и использовать его и в dockpanel и шаблоне элемента ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2018, 10:34 |
|
Изменить предка ресурсов
|
|||
---|---|---|---|
#18+
Roman Mejtesнафига это делать? чтоб они были одного цвета? сделайте элемент прозрачным. но лучший вариант. как уже написали, создать ресурс и использовать его и в dockpanel и шаблоне элементаНе могу и не хочу выделять ресурс. Это же просто тестовый пример. Нет этого ресурса в явном виде. Сон Веры Павловны, Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2018, 11:30 |
|
Изменить предка ресурсов
|
|||
---|---|---|---|
#18+
refreg, не могу, не хочу... написать в ресурсном файле или в ресурсах любого элемента управления <SolidColorBrush x:Key="MyKey" Color="Red"/> и написать Background="{DynamicResource MyBrush}" это не могу и не хочу? это же легко и супер удобно. Локализация с ресурсами происходит так же прозрачно и удобно. Если ресурс динамический (ссылка на ресурс), достаточно просто переключать ресурсные файлы и язык будет меняться без перезагрузки, вместе с картинками и чем угодно. Скины, вы просто загружается XAML Файл с ресурсами скиннов и полностью меняете палитру приложения. Просто одинаковые файлы с одинаковыми именами ресурсов но разными настройками представления. Если есть сложности и NameScope'ом при связывании, можно использовать относительное связывание относительно визуального дерева через RelaticeSource и режимаFindAncestor , можно указать, как именно элемент выше по визуальному дереву заданного типа. Получается огромная партянка, уже давно все жалуются на такой многословный синтаксис такого биндинга. Он еще чреват тем, что шаблон может измениться и будет не то, что задумывали. В качестве источник для Binding'а можно указать ресурс, но только статический, то есть ссылка будет получена 1 раз, если программно менять ресурс, он не обновится при связывании. Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2018, 21:34 |
|
Изменить предка ресурсов
|
|||
---|---|---|---|
#18+
Roman Mejtes, Ну зачем решать тестовую задачу? Я не знаю какой будет цвет ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2018, 21:43 |
|
Изменить предка ресурсов
|
|||
---|---|---|---|
#18+
Roman Mejtes, Есть панель. Там набросаны элементы. Все в одном стиле. Надо вывести однотипную информацию, которая может состоять из нескольких строк (заранее неизвестно). Выбран ListBox, установлен в реадонли. Привязан сорс. И все TextBlock оказались в другом стиле. А хотелось бы в том же. Реши эту задачу. Может не ListBox надо взять, тогда что? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2018, 21:56 |
|
Изменить предка ресурсов
|
|||
---|---|---|---|
#18+
refregЯ не знаю какой будет цветво время разработки или выполнения? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2018, 22:06 |
|
Изменить предка ресурсов
|
|||
---|---|---|---|
#18+
Менять TextBlock как по мне вообще идея неудачная, лучше менять подложку, для изменения цвета. Еще есть 1 момент, TextBlock может состоять из текстовых элементов FlowDocument, Run'ов и прочих. Код: c# 1. 2. 3. 4. 5. 6. 7.
Это так же хорошо экономит количество элементов в визуальном дереве, там где можно обойтись 1 TextBlock'ом, вместо 5и. Я не понял, в чем у вас проблема. Что конкретно нужно решать? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2018, 22:09 |
|
Изменить предка ресурсов
|
|||
---|---|---|---|
#18+
Roman MejtesЯ не понял, в чем у вас проблема. Что конкретно нужно решать? У меня вообще нет проблем. Просто поинтересовался можно "изменить предка ресурсов?" Догадывался, что нельзя, но на всякий случай спросил... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2018, 22:20 |
|
Изменить предка ресурсов
|
|||
---|---|---|---|
#18+
refreg, Нужно просто переопределить ресурс еще раз, вообще сам переопределение будет работать и со статическими ресурсами. Динамические ресурсы тут не главное. Когда все ресурсы в XAML файлах, такой проблемы нет. Ресурсы как правило расположены на определенных уровнях иерархии дерева, а не размазаны по коду. Если размазаны, это плохо, тяжело будет их искать, ползать по дереву тот еще геморой. Файл может загружаться и выгружаться в ресурсы такого корневого элемента (окна, программы, элемента управления, шаблона данных). Локализация обычно на уровне app.xaml. Окно по сути состоит из файлов: XAML файлов со стилями, XAML файла с ресурсами, разметкой окна. В окне или шаблоне окна они мержатся и попадают в визуальное дерево. для примера пилить файлы это перебор конечно, но в реальных условиях я бы делал только так. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2018, 23:22 |
|
|
start [/forum/topic.php?fid=21&msg=39626420&tid=1440431]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
173ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 242ms |
total: | 515ms |
0 / 0 |