2010-12-09 24 views
2

je code suivant dans WPF XAML et que vous voulez qu'il soit converti en Silverlight 4:Reliure à SystemColors dans Silverlight XAML

<Setter 
    Property="Background" 
    Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}" /> 
<Setter> 

Malheureusement, Silverlight ne prend pas en charge x:Static.

Est-ce que quelqu'un sait comment le porter correctement sans code derrière, XAML seulement?

Répondre

4

Puisque vous ne pouvez pas accéder aux propriétés statiques comme ça, vous avez à définir votre propre classe « wrapper » qui envelopper les propriétés statiques, quelque chose comme ceci:

public class StaticMemberAccess 
{ 
     public ResourceKey WindowBrushKey { return SystemColors.WindowBrushKey; } 
     //define other wrapper propeties here, to access static member of .Net or your classes 
} 

faites ceci en XAML

<UserControl.Resources> 
    <local:StaticMemberAccess x:Key="SMA"/> 
</UserControl.Resources> 

<Setter 
    Property="Background" 
    Value="{Binding Source={StaticResource SMA}, Path=WindowBrushKey}" /> 
<Setter> 

J'espère que ça vous donne une idée. :-)

Voir ce aussi:

Retrieving value from static extension XAML