Resources WPF窗口模板资源

Resources WPF窗口模板资源,resources,templates,wpf-controls,window,Resources,Templates,Wpf Controls,Window,我正在尝试定义一个窗口模板,该模板可由其他程序集中的窗口使用。我定义了一个窗口模板,并将其存储在某个程序集中的资源字典中。之后,我在XAML中的其他组装窗口定义中使用此模板。看起来模板已被接受,我可以在VS-2010 designer中看到更新的窗口,但当我向该窗口添加新控件时,该控件将从窗口中消失,但仍存在于XAML代码中。我还尝试显式应用相同的模板,效果很好 generic.Xaml的Xaml代码在包含模板定义的项目中,将设置ThemeInfo属性,并且此文件的BuildAction属性为P

我正在尝试定义一个窗口模板,该模板可由其他程序集中的窗口使用。我定义了一个窗口模板,并将其存储在某个程序集中的资源字典中。之后,我在XAML中的其他组装窗口定义中使用此模板。看起来模板已被接受,我可以在VS-2010 designer中看到更新的窗口,但当我向该窗口添加新控件时,该控件将从窗口中消失,但仍存在于XAML代码中。我还尝试显式应用相同的模板,效果很好

generic.Xaml的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>


DialogResources-是在MyProg.Resources程序集中定义的空类。 现在我在其他程序集中使用此模板,如下所示:

在这个窗口中,我添加了一个按钮,但我无法看到它。当我明确定义TemplateControl(不使用资源)时,我可以看到它

另一个问题是,当在资源中为模板使用TargetType=“{x:Type Window}”时,我遇到以下设计器异常:“'Window'ControlTemplate TargetType与模板类型'WindowInstance'不匹配”。我在Google中找不到与此异常有关的任何内容

请帮助我理解我的代码中有什么错误