17

我正在尝试ResourceDictionary在 WPF 用户控件库项目中创建一个。当我添加以下样式时:

<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

4 回答 4

41

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

于 2013-08-23T12:26:45.773 回答
3

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

于 2013-04-03T11:57:08.723 回答
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 默认引用

于 2012-09-26T17:03:58.940 回答
-1

你是否缺少根

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

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

<Style TargetType="Button">

也有效。

于 2012-09-26T17:08:51.170 回答