Для того, что вы хотите сделать, вам не нужен пользовательский элемент управления, достаточно стиля:
<Style x:Key="MyControlStyle" TargetType="ItemsControl">
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<controls:WrapPanel/>
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
<Setter Property="ItemTemplate">
<Setter.Value>
<DataTemplate>
<TextBox Text="{Binding}" />
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
А затем в экземпляре:
<ItemsControl x:Name="asdf" Style="{StaticResource MyControlStyle}" />
Если вынужен другой элемент управления по другим причинам:
- Создайте новый проект с шаблоном библиотеки элементов управления Silverlight (все определения в этом проекте).
- Если папка Темы отсутствует,добавьте его в корневой каталог проекта и создайте новый файл ResourceDictionary с именем Generic.xaml в папке Темы.
- Создайте новый класс, унаследованный от ItemsControl (давайте назовем его MyItemsControl).
Добавьте конструктор следующим образом:
public MyItemsControl()
{
this.DefaultStyleKey = typeof(MyItemsControl);
}
- Добавьте указанный выше стиль в файл Generic.xaml, удалите атрибут x: Key и измените TargetType на MyItemsControl(вам нужно добавить определение xmlns для локального пространства имен).
- Теперь вернитесь к своему клиентскому проекту, сделайте ссылку на проект Control Library.
- Добавьте определение xmlns всоответствующая страница \ UserControl xaml file и используйте MyItemsControl как любой другой ItemsControl.