Смена Foreground кнопки из анимации в ControlTemplate?
От: vasilov  
Дата: 13.05.11 03:31
Оценка:
Уважаемые господа.

Пытаюсь написать стиль для кнопки.
Проблема — не знаю как поменять цвет текста в нажатом состоянии из анимации.
<Style x:Key="SimpleToggleButton" TargetType="ToggleButton">
    <Setter Property="Foreground" Value="{DynamicResource ControlTextBrush}" />
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="ToggleButton">
                <Grid x:Name="Root">
                    <VisualStateManager.VisualStateGroups>
...
                        <VisualStateGroup x:Name="CheckStates">
                            <VisualStateGroup.Transitions>
                                <VisualTransition GeneratedDuration="0:0:0.3" />
                            </VisualStateGroup.Transitions>
                            <VisualState x:Name="Unchecked" />
                            <VisualState x:Name="Checked">
                                <Storyboard>
                                    <DoubleAnimation Storyboard.TargetName="BorderSelected"
                                                     Storyboard.TargetProperty="(FrameworkElement.Opacity)"
                                                     To="1" />
                                    <!--
                                        ?????
                                    -->
                                </Storyboard>
                            </VisualState>
                        </VisualStateGroup>
...
                    </VisualStateManager.VisualStateGroups>
...
                    <Border Name="BorderSelected"
                            Background="{DynamicResource SelectedBackgroundBrush}"
                            BorderBrush="{DynamicResource ControlBorderBrush}"
                            BorderThickness="{TemplateBinding Control.BorderThickness}"
                            CornerRadius="3,3,3,3"
                            Opacity="0" />
...
                    <ContentPresenter x:Name="presenter"
                                      Margin="{TemplateBinding Padding}"
                                      HorizontalAlignment="Center"
                                      VerticalAlignment="Center"
                                      RecognizesAccessKey="True"
                                      SnapsToDevicePixels="{TemplateBinding UIElement.SnapsToDevicePixels}" />
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

Получается, конечно, так
                <ControlTemplate.Triggers>
                    <Trigger Property="ToggleButton.IsChecked" Value="True">
                        <Setter Property="Foreground" Value="#ffffffff" />
                    </Trigger>
                </ControlTemplate.Triggers>

Но эффект не отражается в редакторе.
И хотелось бы из анимации. Пусть даже мгновенно (был черный текст — стал белый).
Я в стилях совсем зеленый, поэтому по возможности простыми словами или примерами.

Спасибо.
avalon 1.0rc3 rev 380, zlib 1.2.3
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.