首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF VisualStateManager.GoToState

WPF VisualStateManager.GoToState
EN

Stack Overflow用户
提问于 2013-05-12 10:51:20
回答 1查看 706关注 0票数 0

我试图更改程序中所有按钮的状态。

我为纽扣买了这种款式:

代码语言:javascript
复制
 <Style TargetType="{x:Type Button}">
        <Setter Property="Foreground" Value="White"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Button}">
                    <Grid>
                        <VisualStateManager.VisualStateGroups>
                            <VisualStateGroup x:Name="CommonStates">
                                <VisualState x:Name="Normal"/>
                                <VisualState x:Name="StateMouseOver">
                                    <Storyboard>
                                        <ColorAnimation  Storyboard.TargetName="UpperBorder" Duration="00:00:0.5"  Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)" To="#FF5086C4"/>
                                    </Storyboard>
                                </VisualState>
                                <VisualState x:Name="StatePressed">
                                    <Storyboard>
                                        <ColorAnimation  Storyboard.TargetName="UpperBorder" Duration="00:00:0.05"  Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)" To="#FF21214E"/>
                                    </Storyboard>
                                </VisualState>
                                <VisualState x:Name="StateDisabled">
                                    <Storyboard>
                                        <DoubleAnimation  Storyboard.TargetName="UpperBorder" Duration="00:00:0.5"  Storyboard.TargetProperty="(UIElement.Opacity)" To="0"/>
                                    </Storyboard>
                                </VisualState>
                            </VisualStateGroup>
                        </VisualStateManager.VisualStateGroups>
                        <Border x:Name="Lower" Cursor="Hand"   BorderThickness="1" CornerRadius="4" Background="Gray" ></Border>
                        <Border MouseEnter="UpperBorder_MouseEnter" x:Name="UpperBorder" Cursor="Hand"  CornerRadius="4"   Background="#FF0657E8">
                            <Border.Effect>
                                <DropShadowEffect BlurRadius="10"/>
                            </Border.Effect>
                        </Border>
                        <ContentPresenter Cursor="Hand" Margin="8,8,8,8"  HorizontalAlignment="Center" />
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

在这种情况下:MouseEnter="UpperBorder_MouseEnter,我希望更改将在上生效,我的程序中的所有按钮都是(但是函数VisualStateManager.GoToState只接受作为参数的特定按钮)

我怎么能这么做?

EN

回答 1

Stack Overflow用户

发布于 2013-05-21 12:14:40

按钮已经在CommonStates组中具有MouseOver状态。见按钮样式和模板。鼠标结束时,在Button类中自动设置状态。

这就是你想要的吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16506576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档