"{x:Static}"在XAML中是什么意思?

38

{x:Static} 在 XAML 中是什么意思?

代码示例:

<SolidColorBrush Color="{x:Static SystemColors.ControlColor}" />
3个回答

71

这是一种将任何静态值插入XAML的方式。例如,如果我有一个类:

namespace A 
{ 
    public class MyConstants 
    {
        public static readonly string SomeConstantString = "BAM!";
    }
}

我可以使用XAML将它放入WPF界面中,代码如下:

<TextBlock Text="{x:Static A:MyConstants.SomeConstantString}" />

请注意,您需要在XAML中导入定义MyConstants的命名空间。因此,在 <Window> 或 <UserControl> 元素中执行以下操作:

xmlns:A="clr-namespace:A"

2
不幸的是,这在 Silverlight 中不起作用:https://dev59.com/OXA75IYBdhLWcg3wS3BA - Richard Beier

6

来自 MSDN:http://msdn.microsoft.com/zh-cn/library/ms742135.aspx

引用任何以符合通用语言规范(CLS)的方式定义的静态值代码实体。所引用的属性在加载 XAML 页面的剩余部分之前进行评估,并可用于提供 XAML 中属性的值。


0

是的,但简单的谷歌搜索“x:Static xaml”也可以找到它! - Andrew Rollings
当时我想到的是“搜索StackOverflow”,而不是“搜索Google”。既然我已经得到了答案并且想要回到编码,我就没有费心去用Google进行交叉引用。我有代码并且它可以工作 - 我只是好奇它的含义是什么。 - Mark Cidade
1
这提出了一个很好的观点。我想知道是否会达到临界质量,使得对于大多数开发人员而言,stackoverflow成为首要选择,而不是谷歌。 - Andrew Rollings
1
@AndrewRollings 嗯,谷歌搜索似乎仍然更加实用。否则我可能会这样做。 :) - StayOnTarget

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接