更改TextBox控件的前景色

时间:2012-01-06 19:26:16

标签: c# silverlight expression-blend controltemplate

也许这个问题有点傻但我不知道如何解决以下(可能是微不足道的)问题:

我只想更改Silverlight 4中TextBox控件的前景色,以便在“Normal”状态下,它是黑色,在“Disabled”状态下它应该是红色。

到目前为止,我做了以下操作:我正在编辑控件ControlTemplate以使用Blend 4中的Visual State Manager操作TextBox的可视状态但是因为textBox中的文本被实现为其contentControl我找不到任何内容用于更改颜色的前景属性或分别链接到特定视觉状态的前景属性。

同样,我只想为TextBox的不同视觉状态设置不同的前景色。

任何人都可以帮助我吗?提前谢谢!

2 个答案:

答案 0 :(得分:1)

在禁用状态下,您可以设置内容控件的Foreground属性(如果模板不包含内容控件,您可以将其包装在内容呈现器周围):

<Storyboard>
    <ObjectAnimationUsingKeyFrames BeginTime="0"
                                   Storyboard.TargetName="contentControl"
                                   Storyboard.TargetProperty="Foreground">
        <DiscreteObjectKeyFrame Value="Red" KeyTime="0" />
    </ObjectAnimationUsingKeyFrames>
</Storyboard>

答案 1 :(得分:1)

你可以做几件事,你可以删除内容提醒者并用文本块替换它,然后选择TextBlock转到你的公共属性 - &gt;单击文本并单击其旁边的小方块,然后选择模板绑定 - &gt;内容只是为控件添加了内容的模板绑定。

或者快速简单的方法就是将其包装在用户控件中并将更改应用到它而不是像

<UserControl>
<ContentPresenter....
</UserControl>

然后只需选择用户控制对象即可设置前景等。