代码之家  ›  专栏  ›  技术社区  ›  Rev

Silverlight中的视觉状态?(我们如何使用它)

  •  1
  • Rev  · 技术社区  · 14 年前

    我在XAML中为按钮S编写了简单的模板(对于银色灯4)
    So when I try use "ControlTemplate.Triggers", I found that is impossible in silver-light, and we must use Visual-State in Silver-Light
    所以我写了第一个具有可视状态的ControlTemplate,但它不能正常工作。

     <Style x:Key="NextButtonStyle" TargetType="Button">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate>
                        <Grid x:Name="MainGrid">
                            <Border x:Name="MainBorder"
                                    BorderThickness="2"
                                    BorderBrush="#FFC0C0C0"
                                    Background="Bisque"
                                    CornerRadius="4 4 4 4" >
                                <TextBlock x:Name="lbl"
                                           VerticalAlignment="Center"
                                           HorizontalAlignment="Center"
                                           Text=">"
                                           Foreground="#FFC0C0C0"
                                           FontWeight="Bold"
                                           FontFamily="TimesNewRoman"
                                           FontSize="15"/>
                            </Border>
                            <vsm:VisualStateManager.VisualStateGroups>
                                <vsm:VisualStateGroup x:Name="CommonStates">
                                    <vsm:VisualState x:Name="MouseOver">
                                        <Storyboard>
                                            <ColorAnimationUsingKeyFrames AutoReverse="False" Duration="00:00:00.2"
                                                                          Storyboard.TargetName="MainBorder"
                                                                          Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color}">
                                                <SplineColorKeyFrame KeyTime="00:00:00" Value="#FF606060"/>
                                            </ColorAnimationUsingKeyFrames>
                                            <ColorAnimationUsingKeyFrames AutoReverse="False" Duration="00:00:00.2"
                                                                          Storyboard.TargetName="lbl"
                                                                          Storyboard.TargetProperty="(TextBlock.Foreground).(SolidColorBrush.Color}">
                                                <SplineColorKeyFrame KeyTime="00:00:00" Value="#FF606060"/>
                                            </ColorAnimationUsingKeyFrames>
                                        </Storyboard>
                                    </vsm:VisualState>
    
                                </vsm:VisualStateGroup>
                            </vsm:VisualStateManager.VisualStateGroups>
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    

    当我使用这种样式在这个边框上移动时,border和textbloc都变得不可见。所以
    1)我该怎么办?
    2)是否有视觉状态的好例子?

    1 回复  |  直到 14 年前
        1
  •  0
  •   Malcolm    14 年前

    因为两个简单的错误,你的风格没有工作,否则一切都是对的。

    1)Storyboard.TargetProperty=“(border.borderBrush)。(solidColorBrush.color }

    )

    这将是: Storyboard.TargetProperty="(TextBlock.Foreground).(SolidColorBrush.Color )