我有BoxView
我希望更改用户点击它时的颜色。我创建了一个名为tapView的BoxView
并将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;
}
然而,这实际上并没有改变Tap上的颜色。调试和单步执行代码实际上会更新代码中的BoxView
颜色,但不会更新屏幕上的颜色。我需要做什么才能在触摸时实际更新颜色?
答案 0 :(得分:0)
尝试此解决方案,假设您在XAML中为BoxView提供以下属性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;
}
答案 1 :(得分:0)
所以我发现它作为独立代码可以正常工作,但在我的MVVM应用程序中却没有。我在最上面创建一个盒子并且在水龙头上改变不透明度工作得很好。