我正在尝试在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库项目中创建资源字典时,这是有效的。知道为什么吗?
答案 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应用程序我得到以下内容。
答案 3 :(得分:-1)
你错过了根
<ResourceDictionary xmlns="..."
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
,即你在哪里定义x?除此之外
<Style TargetType="Button">
也有效。