Ресурс не может быть разрешен (VS 2010 RC) - PullRequest
6 голосов
/ 06 марта 2010

У меня есть приложение WPF 4, в котором есть несколько пользовательских элементов управления, которые совместно используют стили в своих дочерних элементах управления. Поэтому я создаю несколько стилей в моем App.xaml as. Например:

<Style x:Key="ViewTitle" TargetType="{x:Type Border}">
    <Setter Property="BorderBrush" Value="LightGray" />
    <Setter Property="HorizontalAlignment" Value="Stretch" />
    <Setter Property="VerticalAlignment" Value="Top" />
</Style>

Затем в своих пользовательских элементах управления я использую StaticResource для ссылки на них, например:

<Border Style="{StaticResource ViewTitle}">
    <TextBlock Margin="6,3,4,5" FontSize="18" FontWeight="Bold" Foreground="White" HorizontalAlignment="Left" Text="Host Management" />
</Border>

Это все отлично работает. Проблема в том, что Visual Studio 2010 RC помещает синюю волнистость под ссылкой StaticResource и говорит: ресурс "ViewTitle" не может быть разрешен.

Что с этим? Это проблема с Visual Studio или я делаю что-то не так?

Ответы [ 2 ]

10 голосов
/ 06 марта 2010

Из вашего примечания в комментариях, что "он собирается и работает нормально", это почти наверняка проблема с Visual Studio. К сожалению, конструктор VS WPF печально известен ошибками и часто не может разрешить или обработать совершенно законный XAML. Поэтому единственный верный тест - это компилировать и запускать: раздражает, но это то, с чем каждый учится жить.

Вы можете обнаружить, что дизайнер Expression Blend лучше справляется с этой ситуацией. Blend больше стремится быть визуальным дизайнером (графические дизайнеры являются основными целевыми пользователями), но в Blend 3 значительно улучшена поддержка редактирования исходного кода XAML. Возможно, стоит попробовать.

1 голос
/ 12 октября 2010

Эта проблема была «решена» в Expression Blend 4.

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

Затем Blend создаст DesignTimeResourceDictionary, из которого он получит доступ к вашим ресурсам.

Однако, это не поможет вам, если VS2010 - ваш главный редактор: (

Решение с смесью 4:

http://adamkinney.wordpress.com/2010/05/04/design-time-resources-in-expression-blend-4-rc/

...