En utilisant des objets statiques dans le code XAML qui ont été créés dans le code Silverlight

Je ne pouvais pas obtenir que cela fonctionne dans Silverlight, j'ai donc créé deux projets de test. Un simple projet WPF et un simple projet Silverlight que les deux faire une seule chose: définir un public static readonly variable dans le code, et l'utiliser dans un complètement à nu les os XAML. Dans WPF, fonctionne sans accroc. Dans Silverlight, j'obtiens le message d'avertissement du compilateur et de l'erreur d'exécution:

Avertissement 2 Le tag "Statique" n'existe pas dans l'espace de noms XML 'http://schemas.microsoft.com/winfx/2006/xaml'...

et

Valeur d'attribut non valide {x:Statique SilverlightApplication3:Page.Test} pour le Texte de la propriété. [En Ligne: 7 Position: 25]

Je suis en supposant que ce n'est pas pris en charge dans Silverlight 2, ou suis-je en manquant de quelque chose de vraiment simple? Voici le code complet pour les deux, juste au cas où c'est celui-ci:

public partial class Window1 : Window
{
    public static readonly string Test = "test";
    public Window1()
    {
        InitializeComponent();
    }
}

<Window 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:WpfApplication4="clr-namespace:WpfApplication4">    
    <Grid>
        <TextBlock Text="{x:Static WpfApplication4:Window1.Test}" />
    </Grid>
</Window>

et voici la version SL:

public partial class Page : UserControl
    {
        public static readonly string Test = "test";
        public Page()
        {
            InitializeComponent();
        }
    }

<UserControl x:Class="SilverlightApplication3.Page"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:SilverlightApplication3="clr-namespace:SilverlightApplication3"
    Width="400" Height="300">
    <Grid x:Name="LayoutRoot" Background="White">
        <TextBlock Text="{x:Static SilverlightApplication3:Page.Test}" />
    </Grid>
</UserControl>

OriginalL'auteur Rich | 2009-03-12