更改TextBox控件的前景色

本文关键字:前景色 控件 TextBox 更改 | 更新日期: 2023-09-27 18:19:48

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

我只想更改Silverlight 4中TextBox控件的前景色,使其在"正常"状态下为黑色,在"禁用"状态下应为红色。

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

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

有人能帮我吗?提前谢谢!

更改TextBox控件的前景色

您可以做几件事,您可以删除contentpresent并将其替换为文本块,然后在选择textblock的情况下,转到您的Common Properties->Text并单击它旁边的小方块,然后选择Template Binding->Content,这只会将内容的模板绑定添加到控件中。

或者,一个简单快捷的方法就是将其封装在用户控件中,然后像一样将您的更改应用于它

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

然后只需选择用户控制对象,就可以设置前台等。

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

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