|
Как переделать Application в Class Library?
|
|||
---|---|---|---|
#18+
Есть приложение, главное окно, в нем юзерконтрол, в нем еще два. Использую Mahapps Metro. Теперь хочу переделать его в Class Library. которая вызывается из другого не WPF приложения. Вопрос по ресурсам: Сейчас так Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Куда их можно поместить для прожекта типа Class Library, чтобы они исопльзовались во всех юзеркотролах, как и сейчас в приложении? Пытался добавить их в главный юзерконтрол, но они туда не впихуются: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2016, 20:25 |
|
Как переделать Application в Class Library?
|
|||
---|---|---|---|
#18+
Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2016, 20:32 |
|
Как переделать Application в Class Library?
|
|||
---|---|---|---|
#18+
Я лашара спасибо. Вопрос: будут ли эти ресурсы доступны из других контролов или надо к каждому юзерконтролу их добавлять? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2016, 20:38 |
|
Как переделать Application в Class Library?
|
|||
---|---|---|---|
#18+
Ресурсы ищутся по логическому дереву снизу вверх, то есть будут доступны во всех вложенных контролах. А еще ресурсы можно размещать на уровне App.Xaml ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2016, 21:13 |
|
Как переделать Application в Class Library?
|
|||
---|---|---|---|
#18+
Shocker.ProРесурсы ищутся по логическому дереву снизу вверх, то есть будут доступны во всех вложенных контролах. А еще ресурсы можно размещать на уровне App.Xaml В случае Application там они и есть, и сейчас все работает. Я пытаюсь сделать из приложения class library, а основным приложением будет Wix Bootstrapper. Он будет устанавливать, например, NET 4.5 и затем некое приложение, используя гуи, находящийся в этой classlibrary То есть по сути не WPF приложение будет вызывать эту ассембли. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2016, 22:05 |
|
Как переделать Application в Class Library?
|
|||
---|---|---|---|
#18+
Вот объясните мне, нафига городи в DataTemplate UserControl? чем DataTemplate не устраивает? масло масленное получается. Внутри ContentPresenter'а находится ControlControl, который содержит ContentPresenter, который в свою очередь содержит Content UserControl'а ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2016, 23:04 |
|
Как переделать Application в Class Library?
|
|||
---|---|---|---|
#18+
Roman Mejtes, Наверное потому, что практика применения юзерконтролов - дело привычное и закостеневшее, чтобы от этого уйти, нужно время, чтобы шагнуть ступенькой выше и посмотреть на все это сверху ))) ЗЫ: ответишь? 18718994 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2016, 23:28 |
|
Как переделать Application в Class Library?
|
|||
---|---|---|---|
#18+
Shocker.Pro, нужно понимать след. вещи при работе с ресурсами. StaticResource и DynamicResource ни чем не отличаются, за исключением того, что DynamicResource следит еще и за переопределением ресурсов. То есть когда заменяешь сам ресурс по заданному ключу (x:Key). В остальном они работают одинаково. Ресурс ищется снизу вверх по визуальному дереву (корень вверху), как только ресурс будет найдет он будет определен для соответствующего поля. Если это шаблон, то ресурсы будут определятся для самого шаблона. Все определенные ресурсы в контроле могут быть использованы его наследниками, но не могу быть найдены его соседями. Если в визуальном дереве ресурс не найден, начинается поиск ресурсов приложения Application resources, затем Themes ресурсы (это файл Generic.xaml в папке Themes, если в сборке существует такой файл, его ресурсы доступны для всей сборки) и затем системные ресурсы. Для каждого статического ресурса значение ищется лишь один раз (за исключением Dynamic, который ищет каждый раз, кода ресурс с таким именем был заменен). Freezble классы взаимодействуют с любыми типами ресурсов (динамические\статические) Нужно учитывать и время поиска ресурса. Так же нужно учитывать время поиска, чем ближе ресурс в визуально дереве тем быстрее он будет найден. Удобнее всего создавать файл ресурс для какого то шаблона и внутри него определить все нужные ресурсы дополнительно из другого файла. Путь поиска должен быть достаточно коротким, но не стоит размазывать ресурсы по всему дереву, лучше определять их на определенных уровнях в визуальном дереве ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2016, 10:56 |
|
Как переделать Application в Class Library?
|
|||
---|---|---|---|
#18+
Roman Mejtes, Из всего вышесказанного не знал про Themes, спасибо ) Раз уж зашла речь о Freezable, а вопрос ТС уже вроде как отвечен, подскажешь смысл абстрактного метода CreateInstanceCore? В доке написано - реализуйте тупо созданием нового класса. А в чем тогда глубокий смысл его каждый раз реализовывать? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2016, 11:17 |
|
Как переделать Application в Class Library?
|
|||
---|---|---|---|
#18+
Roman Mejtes, я, собственно, вникаю в WPF, спасибо, познавательно. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2016, 12:05 |
|
Как переделать Application в Class Library?
|
|||
---|---|---|---|
#18+
Shocker.Pro, на сколько я понял, он нужен для клонирования Freezable объектов и применяется в анимации. Он вызывается в методе Clone() в базовом классе Freezable и используется для получения сразу замороженного инстанса этого типа. по ресурсам еще забыл сказать, что ресурсы нужно определять сверху вниз и что не желательно в ресурсах размещать UIControl'ы ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2016, 12:40 |
|
|
start [/forum/topic.php?fid=21&msg=39157346&tid=1440740]: |
0ms |
get settings: |
11ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
150ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 263ms |
0 / 0 |