Mark Cidade
Mark Cidade

Reputation: 100007

What does "{x:Static}" mean in XAML?

What does {x:Static} mean in XAML?

Code sample:

<SolidColorBrush Color="{x:Static SystemColors.ControlColor}" />

Upvotes: 39

Views: 36918

Answers (3)

TcKs
TcKs

Reputation: 26632

From MSDN: x:Static Markup Extension

References any static by-value code entity defined in a Common Language Specification (CLS) compliant way The property referenced is evaluated prior to loading the remainder of the XAML page and can be used to provide the value of a property in XAML.

Upvotes: 6

Mark Cidade
Mark Cidade

Reputation: 100007

I found the question XAML - Accessing static fields having an answer which links to the MSDN documentation x:Static Markup Extension. I figured this would still be useful to have on the site.

Upvotes: 0

Szymon Rozga
Szymon Rozga

Reputation: 18178

It is a way to insert any static value into XAML. For example, if I have a class:

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

I can place it into a WPF UI using XAML like this:

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

Notice, you will have to import the namespace in which MyConstants is defined into your XAML. So in the or element do something like:

xmlns:A="clr-namespace:A"

Upvotes: 75

Related Questions