C# 使用资源设置文本框的前景色

C# 使用资源设置文本框的前景色,c#,wpf,xaml,C#,Wpf,Xaml,我有一个资源文件,其中包含我想在我的项目中使用的颜色。我已经成功地使用了这些资源来设置WPF窗口和控件的样式。我所做的;我努力实现的是使用这些相同的资源以编程方式改变文本框的前景色。我用的是C#和WPF 这是我的资源文件,它存储在/Resources/colors.xaml文件中 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmln

我有一个资源文件,其中包含我想在我的项目中使用的颜色。我已经成功地使用了这些资源来设置WPF窗口和控件的样式。我所做的;我努力实现的是使用这些相同的资源以编程方式改变文本框的前景色。我用的是C#和WPF

这是我的资源文件,它存储在/Resources/colors.xaml文件中

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

<!--Application Colour pallette-->
<SolidColorBrush x:Key="DefaultColour" Color="#FF193B60"></SolidColorBrush>
<SolidColorBrush x:Key="BaseColour" Color="#FF2E5076"></SolidColorBrush>
<SolidColorBrush x:Key="HighlightColour" Color="#FF506F93"></SolidColorBrush>
<SolidColorBrush x:Key="ForegroundColour" Color="#FFB7D7F9 "></SolidColorBrush>
<SolidColorBrush x:Key="AlternateColour" Color="#FFB7D7F9"></SolidColorBrush>
<SolidColorBrush x:Key="HeaderColour" Color="#FF02162B"></SolidColorBrush>
<Color x:Key="Media.DefaultColour">#FF193B60</Color>
<Color x:Key="Media.BaseColour">#FF2E5076</Color>
<Color x:Key="Media.HighlightColour">#FF506F93</Color>
<Color x:Key="Media.ForegroundColour">#FFB7D7F9</Color>
<Color x:Key="Media.AlternateColour">#FFB7D7F9</Color>
<Color x:Key="Media.HeaderColour">#FF02162B</Color>

#FF193B60
#FF2E5076
#FF506F93
#FFB7D7F9
#FFB7D7F9
#FF02162B
我已将resourcedictionary合并到App.xaml文件中

   <Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://Application:,,,/Resources/Colours.xaml" />
</Application.Resources>

谁能给我指点一下吗? 提前感谢。

评论后

为文本框使用Style.Trigger:

<TextBox ...>
    <TextBox.Style>
        <Style  TargetType="{x:Type TextBox}">
            <Setter Property="Foreground" Value="{...focusedcolor...}" />
            <Style.Triggers>
                <Trigger Property="IsFocused" Value="False">
                    <Setter Property="Foreground"  Value="{...unfocused...}" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </TextBox.Style>
</TextBox>


您能说明在这两种情况下如何使用它吗?什么不起作用,在VS输出窗口中可以看到什么?在我使用的WPF样式中,我尝试使用类似textbox.foreground=“{StaticResource defaultcolor}”因此,我可以通过编程更改颜色。很抱歉,我误解了您的问题。@RichK如果要动态更改前景,请使用INotifyPropertyChanged实现绑定到codebehind属性。但你真正的问题是什么?如何从资源中设置前景,或者如何动态设置前景?感谢您的帮助,这正是我所需要的。它现在工作得很好。