Подтвердить что ты не робот

X: Тип не найден в библиотеке пользовательского управления

Я пытаюсь создать ResourceDictionary внутри проекта WPF 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. Любая идея почему?

4b9b3361

Ответ 1

Это случилось со мной, когда я писал расширение IE и хотел создать пользовательские элементы управления WPF. Поскольку проект не был первоначально проектом WPF, не было ссылки на System.Xaml, добавив, что эта ссылка исправила проблему.

Ответ 2

В моем проекте была такая же проблема. Я решил это, переключив Target Framework с .NET 3.0 на 4.0.

Ответ 3

Я должен не согласиться, вот моя декальвация от 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

Ответ 4

Вам не хватает root

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

то есть где вы определяете x? Кроме того,

<Style TargetType="Button">

также работает.