6

我有 WPF 4 应用程序,它有许多在其子控件中共享样式的用户控件。所以我在我的 App.xaml 中创建了许多样式作为 . 例如:

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

然后在我的 UserControls 中,我使用 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 的问题还是我做错了什么?

4

2 回答 2

10

根据您在“它构建和运行良好”的评论中的注释,这几乎肯定是 Visual Studio 的一个问题。不幸的是,VS WPF 设计器出了名的漏洞百出,并且经常无法解析或处理完全合法的 XAML。因此,唯一真正的测试是编译和运行:烦人,但只是一个人学会接受的东西。

可能会发现 Expression Blend 设计器可以更好地处理这种情况。Blend 更多地旨在成为一名视觉设计师(图形设计师是主要目标用户),但 Blend 3 显着改进了对编辑 XAML 源代码的支持。可能值得一试。

于 2010-03-06T01:05:14.910 回答
1

此问题已在 Expression Blend 4 中“解决”。

如果您有无法解决的资源,Blend 4 会自动为您提供查找设计时资源的选项。

然后,Blend 将创建一个 DesignTimeResourceDictionary,它将从中访问您的资源。

但是,如果 VS2010 是您的主编辑器,这对您没有多大帮助:(

Blend 4的解决方案:

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

于 2010-10-12T11:28:41.413 回答