我在WPF XAML中有以下代码,并希望将其转换为Silverlight 4:
<Setter
Property="Background"
Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}" />
<Setter>
不幸的是,Silverlight不支持x:Static
。
有没有人知道如何在没有代码的情况下正确移植它,仅限XAML?
答案 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>
希望,它会给你一些想法。 : - )
另见: