17

ResourceDictionaryWPF UserControl Library プロジェクト内に作成しようとしています。次のスタイルを追加すると:

<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 に答える