У меня есть проект пользовательского контроля WPF, в котором я хочу иметь множество настраиваемых элементов управления. По умолчанию VS2015 cummunity создает папку Theme с файлом generic.xaml и .cs-файлом с логикой взаимодействия.Как иметь множество пользовательских элементов управления wpf в одной и той же библиотеке?
Я хочу иметь множество пользовательских элементов управления, поэтому я попытался создать папку MyControl1, внутри этой папки я создал папку Theme, и я добавляю новый элемент, настраиваемый элемент управления WPF. Но он не создает generic.xaml для этого элемента управления. Я копирую из корневой папки по умолчанию generic.xaml, и я создаю свой стиль, но когда я использую элемент управления в своем приложении WPF, я не вижу этого элемента управления.
Я видел это сообщение: Custom control Lib with multiple controls and generic.xaml, но на самом деле я не так много понимаю.
У меня есть проблема, в MyControl1.Generic.xaml у меня этот код:
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:CustomControls.Calendario2">
<Style TargetType="{x:Type local:CalendarioMes2}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:CalendarioMes2}">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<Grid>
<TextBox Text="Prueba"/>
<Label Content="Prueba"/>
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
Но я получаю ошибку в этой строке:
<Style TargetType="{x:Type local:CalendarioMes2}">
То, что это не возможно создать тип из локального текста: CalendarioMes2.
Если я использую этот код в библиотеке только с одним настраиваемым элементом управления, и этот код находится в файле generic.xaml, он работает.
Итак, в сущности, я хотел бы знать, как мне получить библиотеку со многими настраиваемыми элементами управления.
Спасибо.
И TextBox.xaml находится в папке темы в корне проекта, в той же папке, что и generic.xaml? –
Я создаю папку ResourceDictionaries в корне проекта и размещаю ее там. Вы можете поместить его в папку «Темы», просто измените путь, определенный в объединенном словаре. –