x:在用户控件库中找不到类型

时间:2012-09-26 16:30:13

标签: c# wpf user-controls resourcedictionary

我正在尝试在WPF UserControl Library项目中创建ResourceDictionary。当我添加以下样式时:

<Style TargetType="{x:Type Button}">
    <Setter Property="Background" Value="{StaticResource ResourceKey=GreyBrush}"/>
    <Setter Property="BorderBrush" Value="{StaticResource ResourceKey=LightBlueBrush}"/>
    <Setter Property="BorderThickness" Value="1"/>
    <Style.Triggers>
        <Trigger Property="IsMouseOver" Value="True">
            <Setter Property="Background" Value="{StaticResource ResourceKey=OrangeBrush}"/>
        </Trigger>
        <EventTrigger RoutedEvent="Click">
            <BeginStoryboard>
                <Storyboard>
                    <ColorAnimation Storyboard.TargetProperty="Background.Color" To="{StaticResource ResourceKey=LightOrange}" Duration="0:0:.1"/>
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
    </Style.Triggers>
</Style>

我收到错误说:

The type 'x:Type' was not found. Verify that you are not missing an assembly reference and that all referenced assemblies have been built.

我宣布x为:

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

当我在WPF应用程序项目中创建资源字典但不在UserControl库项目中创建资源字典时,这是有效的。知道为什么吗?

4 个答案:

答案 0 :(得分:35)

当我编写IE扩展并希望创建WPF用户控件时,这发生在我身上。由于该项目最初不是WPF项目,因此没有引用 System.Xaml ,添加所述引用修复了该问题。

答案 1 :(得分:2)

我的项目中有同样的问题。我已经通过将Target Framework从.NET 3.0切换到4.0来解决了这个问题。

答案 2 :(得分:1)

我不同意,这是我的UserControl的解密功能。​​

<UserControl x:Class="RedGreenRefactor.View.TestResultsGraph"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

错误是否有可能告诉您究竟出了什么问题?您是否获得了所需的所有程序集?

创建一个新的WPF应用程序我得到以下内容。

WPF default references

答案 3 :(得分:-1)

你错过了根

<ResourceDictionary xmlns="..."
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

,即你在哪里定义x?除此之外

<Style TargetType="Button">

也有效。