У меня есть BoxView
, цвет которого я хочу изменить, когда пользователь нажимает на него. Я создал BoxView
под названием tapView и установил GestureRecognizer
следующим образом:
var tapGestureRecognizer = new TapGestureRecognizer();
tapGestureRecognizer.Tapped += (s, e) => {
// handle the tap
OnTapGestureRecognizerTapped(s, e);
};
tapView.GestureRecognizers.Add(tapGestureRecognizer);
И мой метод работы с краном:
void OnTapGestureRecognizerTapped(object sender, EventArgs args)
{
var box = (BoxView)sender;
box.Color = Color.Red;
}
Однако на самом деле это не меняет цвет крана. При отладке и пошаговом выполнении кода он действительно обновляет цвет BoxView
в коде, но не на экране. Что мне нужно сделать, чтобы он действительно обновлял цвет при прикосновении?
2 ответа
Попробуйте это решение, предполагая, что вы передаете своему BoxView следующее свойство в своем XAML x:Name="myBox"
//This code betlow the page InitializeComponent call
var boxTapHandler = new TapGestureRecognizer();
boxTapHandler.Tapped += ChangeColor;
myBox.GestureRecognizers.Add(boxTapHandler);
Метод изменения цвета, аналогичный, но со ссылкой на BoxView по имени
private void ChangeColor(object sender, EventArgs args)
{
myBox.Color = Color.red;
}
Итак, я обнаружил, что как отдельный код он работает нормально, но в моем приложении MVVM это не так. В итоге я создал прямоугольник сверху, и изменение непрозрачности при касании сработало отлично.
Похожие вопросы
Новые вопросы
xamarin
Xamarin - это платформа, состоящая из Xamarin.iOS, Xamarin.Android, Xamarin.Mac и Xamarin Test Cloud. Он позволяет вам писать кроссплатформенные нативные приложения для iOS, Android и Mac и следить за вашим приложением в течение всего его жизненного цикла. Внедрение Xamarin.Forms поддерживает разработку Native UI для iOS, Android и Windows.