Ресурс шаблона окна WPF - PullRequest
2 голосов
/ 11 июля 2010

Я пытаюсь определить шаблон окна, который может использоваться окнами в других сборках.Я определяю шаблон окна и сохраняю его в словаре ресурсов в некоторой сборке.После этого я использую этот шаблон в другой сборке по определению окна в 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.

Пожалуйста, помогите мне понять, что не так в моем коде?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...