Почему XamlReader.Load не может распознать мое присоединенное свойство в Silverlight 4?

Я пытаюсь понять, как программно применить тему во время выполнения в нашем приложении Silverlight 4. Я решил, что это должно быть так же просто, как загрузить словарь ресурсов из XAML и объединить его с объединенными словарями приложения. Вот мой код:

var themeUri = new Uri(
    "OurApp;component/Themes/Classic/Theme.xaml", UriKind.Relative);
var resourceInfo = GetResourceStream(themeUri);
using (var stream = resourceInfo.Stream)
{
    using (var reader = new StreamReader(stream))
    {
        var xamlText = reader.ReadToEnd();
        var dict = XamlReader.Load(xamlText) as ResourceDictionary;
        Resources.MergedDictionaries.Add(dict);
    }
}

К сожалению, a XamlParseException возникает во время вызова XamlReader.Load :

Присоединяемое свойство «Foo» не найдено в типе «Bar».

Прикреплено правильно ] правильно объявлен , а объявление пространства имен в XAML правильно ссылается на требуемое пространство имен. Прикрепленное свойство XAML работает нормально, если оно загружено в объединенные словари декларативно через разметку App.xaml.

Вот сокращенная копия XAML, которую я пытаюсь загрузить во время выполнения:

<ResourceDictionary xmlns:u="clr-namespace:Company.Product.Utils"
                    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Style x:Key="ControlPanelStyle" TargetType="ContentControl">
    <Setter Property="Template">
      <Setter.Value>
        <ControlTemplate TargetType="ContentControl">
          <Grid Margin="0" u:Bar.Foo="True">
            <!-- Stuff and things -->
            <ContentPresenter Content="{TemplateBinding Content}" />
          </Grid>
        </ControlTemplate>
      </Setter.Value>
    </Setter>
  </Style>
</ResourceDictionary>

Почему ссылка на прикрепленное свойство не работает при загрузке XAML во время выполнения, когда оно работает нормально при "статической" загрузке?

7
задан Jacob 20 September 2010 в 19:14
поделиться