Как одновременно использовать GestureRecognizer и Effects в формах Xamarin? - PullRequest
0 голосов
/ 28 апреля 2018

Я добавил распознаватель жестов касания к своему StackLayout, и я хочу изменить цвет фона при его нажатии, чтобы пользователь распознал, что макет был нажат

  <StackLayout.GestureRecognizers>
        <TapGestureRecognizer 
         Tapped="Preferences_Clicked"
         NumberOfTapsRequired="1"/>
  </StackLayout.GestureRecognizers>

Должен ли я использовать анимацию для этого?

UPDATE: под изменением цвета фона я имею в виду эффект, похожий на выделение, как при выборе элемента в ListView

Ответы [ 2 ]

0 голосов
/ 01 мая 2018

Я мог найти свой ответ, я просто добавил этот бит кода в метод Tapped и получил то, что хотел

    public async void Preferences_Clicked(object sender, EventArgs e)
    {
        const int _animationTime = 50;
        try
        {
            var layout = (StackLayout)sender;
            await layout.FadeTo(0.5, _animationTime);
            await layout.FadeTo(1, _animationTime);
        }
        catch (Exception ex)
        {

        }       
    }
0 голосов
/ 28 апреля 2018

Используйте этот код для переключения цвета

   int tapCount=0;
    void Preferences_Clicked(object sender, EventArgs args)
    {
        tapCount++;
        var stackLayout = (StackLayout)sender;
        if (tapCount % 2 == 0) {
            stackLayout.BackgroundColor  = Color.Default;
        } else {
            stackLayout.BackgroundColor  =  Color.Accent;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...