XAML中"{x:Static}"的含义是什么?

Mar*_*ade 33 .net wpf xaml

{x:Static}在XAML 中意味着什么?

代码示例:

<SolidColorBrush Color="{x:Static SystemColors.ControlColor}" />
Run Code Online (Sandbox Code Playgroud)

Szy*_*zga 62

这是一种将任何静态值插入XAML的方法.例如,如果我有一个班级:

namespace A 
{ 
    public class MyConstants 
    {
        public static readonly string SomeConstantString = "BAM!";
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以使用XAML将它放入WPF UI中,如下所示:

<TextBlock Text="{x:Static A:MyConstants.SomeConstantString}" />
Run Code Online (Sandbox Code Playgroud)

请注意,您必须将定义MyConstants的命名空间导入XAML.所以在或元素中做类似的事情:

xmlns:A="clr-namespace:A"
Run Code Online (Sandbox Code Playgroud)

  • 不幸的是,这在Silverlight中不起作用:http://stackoverflow.com/questions/3373926/silverlight-4-equivalent-to-wpf-xstatic (2认同)

TcK*_*cKs 6

来自MSDN:http://msdn.microsoft.com/en-us/library/ms742135.aspx

引用以公共语言规范(CLS)兼容方式定义的任何静态按值代码实体引用的属性在加载XAML页面的其余部分之前进行评估,并可用于在XAML中提供属性的值.