Изменение цвета переднего плана элемента управления TextBox - PullRequest
0 голосов
/ 06 января 2012

Возможно, этот вопрос глупый, но я понятия не имею, как решить следующую (может быть, тривиальную) проблему:

Я просто хочу изменить цвет переднего плана элемента управления TextBox в Silverlight 4, чтобы в состоянии «Normal» он был, скажем, черным, а в состоянии «Disabled» - красным.

Пока что я сделал следующее: я редактирую ControlTemplate элементов управления, чтобы манипулировать визуальными состояниями TextBox с помощью Visual State Manager в Blend 4, но поскольку текст в textBox реализован как его contentControl, я не могу найти никакого свойство переднего плана для изменения цвета или ссылки на определенное визуальное состояние соответственно.

Опять же, я просто хочу установить разные цвета переднего плана для разных визуальных состояний TextBox.

Кто-нибудь может мне помочь? Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 06 января 2012

Вы можете сделать пару вещей. Вы можете удалить contentpresenter и заменить его текстовым блоком, затем, выбрав TextBlock, перейти в «Общие свойства» -> «Текст», щелкнуть по квадрату рядом с ним и выбрать «Привязка к шаблону» -> «Содержимое».Который просто добавляет привязку шаблона для содержимого к элементу управления.

Или быстрый и простой способ - это просто обернуть его в пользовательском контроле и применить вместо него ваши изменения, например

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

Тогда простовыберите объект управления пользователя и вуаля, вы можете установить передний план и т. д.

1 голос
/ 06 января 2012

В отключенном состоянии вы можете установить свойство Foreground элемента управления содержимым (если шаблон не содержит элемент управления содержимым, вы можете просто обернуть его вокруг предъявителя содержимого):

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