0

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

我得到了这种按钮样式:

 <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 仅将特定按钮作为参数) 我该怎么做?

4

1 回答 1

0

按钮在 CommonStates 组中已经具有 MouseOver 状态。请参阅按钮样式和模板。鼠标悬停时在 Button 类中自动设置的状态。

那是你要的吗 ?

于 2013-05-21T12:14:40.200 回答