2012-09-26 19 views
13

私はResourceDictionaryをWPF UserControl Libraryプロジェクト内に作成しようとしています。私は次のスタイルを追加する場合:私は、内部のリソースディクショナリを作成するときに、この作品x:ユーザーコントロールライブラリにタイプが見つかりません

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

:として

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を宣言しています:

<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> 

を私はというエラーを取得しますWPFアプリケーションプロジェクトですが、UserControlライブラリプロジェクト内にはありません。どんな考え?

+0

なぜ起こっているのか分かりませんが、回避策は、{Target Type = "Button"}という{x:Type}テキストを削除することです。同じエラーがSilverlight AFAIKで発生します。 – Patrick

+0

しかし、常に起こるとは限りません。上記のスタイルは、新しく作成された(.Net 4.0)WPFユーザーコントロールライブラリプロジェクトのリソースディクショナリでうまく動作します。 – Clemens

+0

私はVS2012 Professionalを使用していて、.Net 3.5 WPFユーザーコントロールライブラリを作成しています。 – FlyingStreudel

答えて

31

IEエクステンションを作成していて、WPFユーザーコントロールを作成したかったときに、これが起こりました。プロジェクトはもともとWPFプロジェクトではなかったので、System.Xamlへの参照はなく、上記の参照を追加することで問題は解決しました。

+1

これは私のためにそれを修正しました!プロジェクトはコンパイルされましたが、常にエラーを表示しました(特に、Productivity Power Tools拡張機能のソリューションエクスプローラエラー機能に迷惑をかける)。 – yourbuddypal

+1

同じ問題や解決策が発生しましたが、犯人は "System.Presentation"でした。 –

1

ここで私は反対する必要があります、私のDecalarationは動作する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

+0

これは3.5または4.0ライブラリ用ですか? Microsoft.CSharpとSystem.Xamlは3ではないので、私は4.0を推測している。5 – FlyingStreudel

+0

4.5実際には、いつでも新しい空のwpfを作成し、任意のバージョンのために比較することができます – AlSki

+0

参照はwpf appプロジェクトとコントロールライブラリで同じです。 – FlyingStreudel

-1

あなたはすなわち、どこでXを定義するか、ルート

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

不足していますか?それ以外は

<Style TargetType="Button"> 

でも動作します。

2

私のプロジェクトで同じ問題が発生していました。 Target Frameworkを.NET 3.0から4.0に切り替えることで解決しました。

関連する問題