Я пытаюсь определить шаблон окна, который может использоваться окнами в других сборках.Я определяю шаблон окна и сохраняю его в словаре ресурсов в некоторой сборке.После этого я использую этот шаблон в другой сборке по определению окна в XAML.Похоже, что шаблон принят, и я вижу обновленное окно в конструкторе VS-2010, но когда я добавляю новый элемент управления в это окно, элемент управления исчезает из окна, но все еще существует в коде XAML.Я также попытался применить тот же шаблон явно, и он хорошо работает.
Xaml-код generic.xaml в проекте, который содержит определение шаблона, атрибут ThemeInfo установлен, а свойство BuildAction для этого файла - Page.
<ControlTemplate x:Key="{ComponentResourceKey TypeInTargetAssembly= {x:Type local:DialogResources}, ResourceId=DialogTemplate}">
<Border Width="Auto" Height="Auto" Name="windowFrame"
BorderBrush="#395984"
BorderThickness="1"
CornerRadius="0,20,20,20"
Background="AliceBlue">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Margin="1" Padding="5" Text="Template Window" FontWeight="Bold"/>
<Border Background="#B5CBEF" Grid.Row="1" CornerRadius="0,0,20,20" >
<AdornerDecorator>
<ContentPresenter/>
</AdornerDecorator>
</Border>
</Grid>
</Border>
</ControlTemplate>
DialogRespources - пустой класс, определенный в сборке MyProg.Resources.Теперь я использую этот шаблон в другой сборке, например:
В этом окне я добавляю кнопку, но не вижу ее.Когда я определяю TemplateControl явно (без использования ресурса), я вижу его.
Другая проблема состоит в том, что я получаю следующее исключение конструктора, когда использую TargetType = "{x: Type Window}" для шаблона в ресурсе:"TargetType ControlTemplate Window не соответствует шаблонному типу WindowInstance."Я не смог найти что-либо об этом исключении в Google.
Пожалуйста, помогите мне понять, что не так в моем коде?