Предотвращение ошибок разработчика Visual Studio, когда ресурс WPF определяется в отдельном проекте

Другая версия Python, которая скорее короче (21 символ):

R=lambda s:s==s[::-1]
33
задан M. Dudley 9 July 2009 в 21:36
поделиться

2 ответа

Один возможное решение - использовать DynamicResource вместо StaticResource . Дизайнер Visual Studio 2008 просто отображает элементы управления без какого-либо стиля, как это делает VS2010 beta 1, когда не может разрешить StaticResource .

Использование DynamicResource уместно в ситуациях, когда конкретный стиль может измениться во время выполнения, например, при снятии скинов.

Я нашел несколько связанных вопросов, подтверждающих это:

Я также нашел человека, который утверждает, что DynamicResource следует использовать всякий раз, когда ресурс не является локальным:

3
ответ дан 27 November 2019 в 19:35
поделиться

Вы можете создать свой собственный класс ResourceDictionary, унаследованный от ResourceDictionary. Затем вы можете сделать так, чтобы во время разработки этот настраиваемый ResourceDictionary загружал некоторые явно определенные стили (то есть те, которые загружаются из приложения во время выполнения), тогда как во время выполнения он вообще ничего не делает. Для этого можно оценить свойство IsInDesignMode.

Допустим, у вас есть такой класс, называемый DesignTimeResourceDictionary, тогда вы просто используете s.th. например

 <UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <Util:DesignTimeResourceDictionary Source="SomeUriToYourResources"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
 </UserControl.Resources>

, чтобы загрузить ваши ресурсы во время разработки и заставить дизайнера работать. Затем во время выполнения вы можете заставить ваш DesignTimeResourceDictionary пропускать загрузку ресурсов и достигать желаемого поведения.

Если вам нужно, вы действительно можете создать для этого копию реальных ресурсов, или вы можете просто создать фиктивный словарь, содержащий все ключи вам нужны, чтобы дизайнер продолжал работать.

4
ответ дан 27 November 2019 в 19:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: