есть шаблон в resourcedictionary
<Style TargetType="controls:NeoWindow">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="controls:NeoWindow">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Menu Name="mainMenu" Grid.Row="0" HorizontalAlignment="Stretch" VerticalAlignment="Top">
<MenuItem Header="sadf"/>
</Menu>
<TabControl Name="tabList" Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
</TabControl>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
есть окно
<controls:NeoWindow x:Class="WpfApplication4.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300"
xmlns:controls="clr-namespace:WpfApplication4" Loaded="NeoWindow_Loaded">
<controls:NeoWindow.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/WpfApplication4;component/Dictionary1.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</controls:NeoWindow.Resources>
</controls:NeoWindow>
Проблема в том, что в дизайнере шаблон отображается нормально, а вот при запуске окно пустое.
А при попытке кодом добавить элемент меню
((Menu)this.Template.FindName("mainMenu", this)).Items.Add(new MenuItem() { Header = "qwe" });
в консоль выводится сообщение
Первый этап обработки исключения типа "System.NullReferenceException" в WpfApplication4.exe
Странно, что если шаблон отсоединить, то такое исключение выводится не в консоль, а завершает приложение с ошибкой.