Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.0k views
in Technique[技术] by (71.8m points)

wpf - How can I define and use a variable in XAML to define a color?

I have a number of elements in my XAML which define Foreground="#555" to be the color of faded text in a readonly textbox.

<TextBlock Text="{Binding SingularModelClassFileTitle}" Margin="0 10 0 0"/>
<TextBox Text="{Binding SingularModelClassFileName}"
         HorizontalAlignment="Left"
         IsReadOnly="True"
         Foreground="#555"
         Width="500"/>
<TextBox 
 VerticalScrollBarVisibility="Visible"
 AcceptsReturn="True"                  
 Width="500" 
 Height="100" 
 IsReadOnly="True" 
 Foreground="#555"
 Text="{Binding SingularModelClassContent}"
 HorizontalAlignment="Left"
 Margin="0 0 0 20"/>

How can I put this value in a XAML variable and reference in each attribute it so that I only have to change it in one place?

I'm thinking you can do something like this:

<sys:String x:Key="ReadOnlyTextColor">#555</sys:String>

...

    <TextBox Foreground="{StaticResource ReadOnlyTextColor}"/>

And what would be the property xmlns:sys=... reference for this?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Try defining your color as a SolidColorBrush:

<SolidColorBrush x:Key="ReadOnlyTextBrush" Color="#555555" />

...

<TextBox Foreground="{StaticResource ReadOnlyTextColor}" />

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...