2012-01-06 4 views
0

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

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

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

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

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

ответ

1

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

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

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

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

+0

Эй, Крис У. :) Спасибо за ваш быстрый ответ. Ваш ответ был именно тем, что я искал. Я просто удалил ContentControl, заменил его обычным TextBlock, и мир снова вращается;) –

+1

Не стоит беспокоиться, что это помогло, все эти рендеринги как текстовые блоки во время выполнения в любом случае, этот трюк пригодится часто. Удачи! –

1

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

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

Спасибо за быстрый ответ :) –

Смежные вопросы