Визуальное состояние для MouseOver не работает на WindowsPhone - PullRequest
0 голосов
/ 24 марта 2012

Есть код, который я генерирую в стиле кнопки.Я хотел бы изменить пограничную кисть на YellowGreen во время наведения мыши, но это, похоже, не повлияло.Могут ли некоторые показать мне, что не так с кодом?Вот мой код.

    <Style x:Key="CustomButtonStyle" TargetType="Button">
        <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate>
                    <Grid>
                        <VisualStateManager.VisualStateGroups>
                            <VisualStateGroup x:Name="CommonStates">
                                <VisualState x:Name="Normal">
                                    <Storyboard>
                                        <DoubleAnimation To="1" Duration="0:00:00.5" Storyboard.TargetName="NormalBackground" Storyboard.TargetProperty="Opacity"/>
                                        <DoubleAnimation To="0" Duration="0:00:00.5" Storyboard.TargetName="HoverBackground" Storyboard.TargetProperty="Opacity"/>
                                        <DoubleAnimation To="0" Duration="0:00:00.5" Storyboard.TargetName="PressedBackground" Storyboard.TargetProperty="Opacity"/>
                                    </Storyboard>
                                </VisualState>
                                <VisualState x:Name="MouseOver">
                                    <Storyboard>
                                        <DoubleAnimation To="0" Duration="0:00:00.5" Storyboard.TargetName="NormalBackground" Storyboard.TargetProperty="Opacity"/>
                                        <DoubleAnimation To="1" Duration="0:00:00.5" Storyboard.TargetName="HoverBackground" Storyboard.TargetProperty="Opacity"/>
                                        <DoubleAnimation To="0" Duration="0:00:00.5" Storyboard.TargetName="PressedBackground" Storyboard.TargetProperty="Opacity"/>
                                    </Storyboard>
                                </VisualState>
                                <VisualState x:Name="Pressed">
                                    <Storyboard>
                                        <DoubleAnimation To="0" Duration="0:00:00.5" Storyboard.TargetName="NormalBackground" Storyboard.TargetProperty="Opacity"/>
                                        <DoubleAnimation To="0" Duration="0:00:00.5" Storyboard.TargetName="HoverBackground" Storyboard.TargetProperty="Opacity"/>
                                        <DoubleAnimation To="1" Duration="0:00:00.5" Storyboard.TargetName="PressedBackground" Storyboard.TargetProperty="Opacity"/>
                                    </Storyboard>
                                </VisualState>
                            </VisualStateGroup>
                        </VisualStateManager.VisualStateGroups>

                        <Border Name="NormalBackground" CornerRadius="3" BorderBrush="Black" BorderThickness="1" Background="black" />
                        <Border Name="HoverBackground" Opacity="0" CornerRadius="3" BorderBrush="GreenYellow" BorderThickness="3" Background="Gray" />
                        <Border Name="PressedBackground" Opacity="0" CornerRadius="8" BorderBrush="Black" BorderThickness="1" Background="Red" />

                        <ContentPresenter VerticalAlignment="Center" HorizontalAlignment="Center" />
                    </Grid>

                </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

Следующий код показывает, как добавить кнопку на MainPage.xaml.

<Button x:Name="btnCall"    Click="btnCall_Click" Grid.Row="0" Grid.Column="1"  Content="test"   
Style="{StaticResource CustomButtonStyle}"   />  

Ответы [ 2 ]

4 голосов
/ 24 марта 2012

В Windows Phone на самом деле нет мыши.

Помните, на телефоне у вас нет мыши.Что вы пытаетесь сделать (другими словами, что эквивалентно мышью, над которой вы пытаетесь имитировать телефон?)

[Обычно люди взаимодействуют с эмулятором с помощью мыши, ноКонечно, нет никакого эквивалента на самом телефоне, поэтому не имеет особого смысла поддерживать его]

0 голосов
/ 21 февраля 2013

Мышь перемещает курсор в неопределенной области, поэтому она должна оставаться заземленной на полу, чтобы отслеживать местоположение на экране, которое увеличивается или уменьшается в соответствии с созданной горизонтальной или вертикальной дельтой.

Сенсорные экраны в целом предназначены для выбора мест в области, которая уже определена. Вы не «ищете» место с помощью ходящей мыши, вы уже «знаете» это. И когда вы двигаете пальцем по экрану, он запускает события жестов на основе дельты, а не перемещает курсор на основе этой дельты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...