VS2010 не может найти тип ControlTemplate, даже если ссылка на System.Windows - PullRequest
2 голосов
/ 17 июня 2010

Я пытаюсь изучить Silverlight здесь, создавая собственный шаблон элемента управления, однако VS2010 отказывается распознавать код разметки типа ControlTemplate, хотя я ссылался на System.Windows и System.Windows.Controls сборки (что по умолчанию при создании проекта на основе стандартного шаблона приложения Silverlight). Я пытаюсь воссоздать это замечено на другом SO стеке .

Я пытался поместить этот код непосредственно в файл (т.е. ImageButton.xaml) и ничего больше:

<ControlTemplate x:Key="ImageButtonTemplate">
    <Image Source="{TemplateBinding Content}" />
</ControlTemplate>

1 Ответ

0 голосов
/ 17 июня 2010

Достаточно сложно ответить на этот вопрос авторитетно, не зная немного больше контекста, такого как тип файла, в который вы его помещаете, и какая именно ошибка в Visual Studio. Я полагаю, что вы получаете ошибку, такую ​​как:

The type 'ControlTemplate' was not found. Verify that you are not missing an assembly reference and that all referenced assemblies have been built.

или, возможно:

Property 'Content' does not support values of type 'ControlTemplate'

Это вызвано тем, что шаблон размещен не в том месте - например, если вы создадите новый UserControl (через «Добавить» -> «Новый элемент») и удалите содержимое файла и вставите его в свой код, тогда вы будете получить эту ошибку, поскольку xaml не имеет ссылок на ControlTemplate.

Лучшее место для размещения вашего ControlTemplate - это место, которое можно использовать повторно, например, новый «Словарь ресурсов» (снова добавьте его через «Добавить» -> «Новый элемент» -> «Словарь ресурсов Silverlight»), а затем поместите код внутрь. теги <ResourceDictionary ...></ResourceDictionary>.

Если вы хотите поместить его в UserControl (источник второй ошибки), вы должны добавить его в раздел Resources этого элемента управления, например:

<UserControl.Resources>
    <ControlTemplate x:Key="ImageButtonTemplate">
        <Image Source="{TemplateBinding Content}" />
    </ControlTemplate>
</UserControl.Resources>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...