绑定到Silverlight XAML中的SystemColors

时间:2010-12-09 14:10:36

标签: silverlight xaml

我在WPF XAML中有以下代码,并希望将其转换为Silverlight 4:

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

不幸的是,Silverlight不支持x:Static

有没有人知道如何在没有代码的情况下正确移植它,仅限XAML?

1 个答案:

答案 0 :(得分:4)

由于你无法访问那样的静态属性,你需要定义自己的“包装器”类来包装静态属性,如下所示:

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

然后在XAML中执行此操作

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

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

希望,它会给你一些想法。 : - )

另见:

Retrieving value from static extension XAML