Button ControlTemplate Foreground WPF
От: Sergey_BG Россия  
Дата: 27.12.10 11:31
Оценка:
Помогите пожалуйста.
Имею стиль для кнопки написанный с использование триггеров и сеттеров.
Переделываю под использование VisualStateManager.
Ряд свойств объектов привязан к свойству Button.Foreground.
В состоянии Disabled хочу менять это свойство.
Background работает, а Foreground не находит. Кнопка является потомком Control, и оно у него должно быть. Может я binding не правильно делаю...

        <Style x:Key="buttonLeftStyle" TargetType="Button">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate x:Name="template" TargetType="{x:Type Button}">
                        <Grid x:Name="gridOfButton">
                            <VisualStateManager.VisualStateGroups>
                                <VisualStateGroup x:Name="CommonStates">
                                    <VisualState x:Name="Disabled">
                                        <Storyboard>
                                            <ObjectAnimationUsingKeyFrames
                                                Storyboard.Target="{Binding RelativeSource={RelativeSource TemplatedParent}}"
                                                Storyboard.TargetProperty="Foreground"
                                              Duration="0">
                                                <ObjectAnimationUsingKeyFrames.KeyFrames>
                                                    <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource buttonDisabledBrush} /">
                                                </ObjectAnimationUsingKeyFrames.KeyFrames>
                                            </ObjectAnimationUsingKeyFrames>
                                        </Storyboard>
                                    </VisualState>
                                </VisualStateGroup>



С помощью триггера/сеттера это делается крайне легко, а со Storyboard имею проблемы.

<ControlTemplate.Triggers>
    <Trigger Property="IsEnabled" Value="False">
        <Setter Property="Foreground" Value="{StaticResource buttonDisabledBrush}"/>
    </Trigger>
</ControlTemplate.Triggers>
Сергей
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.