Я уверен, что этот вопрос или производные от него были запрошены в bazillion раз, но я не мог найти ничего, что помогло мне решить проблему, поэтому я спрашиваю. Пожалуйста, не стесняйтесь направить меня в дубликат, который, я уверен, существует, но я не могу найти. Видимо, я не так хорош с ключевыми словами.Шаблон пользовательского шаблона WPF не применяется
У меня есть пользовательский контроль, у него есть собственный словарь ресурсов, используемый только для определения шаблона управления. Затем этот словарь объединяется в Generic.xaml.
Проблема в том, что, когда этот элемент управления отображается в пользовательском интерфейсе, в нем нет ничего внутри. Я использовал Snoop, чтобы узнать это. Элемент управления находится в пользовательском интерфейсе, но он полностью пуст.
Ниже вы найдете пункты, которые, как я думаю, несут ответственность за проблему. Любая помощь или совет, которые вы можете предложить, очень ценится.
Соответствующие части моей структуры папок, как это:
BasicTemplate.xaml:
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WPFSpecBuilder.Layouts.Templates">
<Style TargetType="{x:Type local:BasicTemplate}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:BasicTemplate}">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<Grid>
<TextBlock Text="This is a basic template." />
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
Generic.xaml
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Layouts/Templates/XAML/BasicTemplate.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
Я продвинется по принципу исключения: во-первых утверждать, что ваше определение стиля НЕ является частью проблема. Итак, выберите его из вашего вложенного ResourceDictionary и вставьте его в Generic.xaml (который, я надеюсь, вы ссылаетесь в App.xaml). После этого показывает желаемый эффект, попробуйте то, что предлагает Стив (утверждая, что ваш относительный путь задан правильно) –