C# Xamarin:如何更改代码中添加的按钮的颜色?

C# Xamarin:如何更改代码中添加的按钮的颜色?,c#,xamarin.forms,C#,Xamarin.forms,我的Xamarin应用程序在代码中创建按钮。我可以更改我单击的按钮的颜色,因为该按钮在其Clicked处理程序的sender参数中被引用,但我想更改我没有单击的按钮的颜色。问题是,如何找到要更改的按钮 我考虑过使用FindByName,但Name似乎不是一个属性 我可以想到的一种方法是:循环遍历所有按钮,直到找到具有所需按钮的StyleId的按钮。有比这更简单的方法吗?当你在代码中创建一个按钮时,你需要保留一个对它的引用,就像你以后要引用的任何C对象一样 Button MyButton = ne

我的Xamarin应用程序在代码中创建按钮。我可以更改我单击的按钮的颜色,因为该按钮在其Clicked处理程序的sender参数中被引用,但我想更改我没有单击的按钮的颜色。问题是,如何找到要更改的按钮

我考虑过使用FindByName,但Name似乎不是一个属性


我可以想到的一种方法是:循环遍历所有按钮,直到找到具有所需按钮的StyleId的按钮。有比这更简单的方法吗?

当你在代码中创建一个按钮时,你需要保留一个对它的引用,就像你以后要引用的任何C对象一样

Button MyButton = new Button { ... };
MyButton.BackgroundColor = Color.Purple;

如果您需要从代码中的多个位置访问它,那么您应该将它声明为类级别变量,以确保它在整个类中都有作用域

,如果您想找到在没有XAML的代码隐藏中创建的按钮,如@Jason所说,使用您创建的按钮的变量名或直接设置它。

 Button button = new Button { ClassId = "button1", BackgroundColor = Color.Red };
如果要使用
FindByName
访问视图,则需要使用XAML中的
x:Name
创建按钮。

 Button button = new Button { ClassId = "button1", BackgroundColor = Color.Red };
有一个XAML示例:

<Button x:Name="button1" ></Button>
如果出于某种原因需要在xaml中查找视图,请执行以下操作:

var button = this.FindByName<Button>("button1");
button.BackgroundColor = Color.Red;
var button=this.FindByName(“button1”);
button.BackgroundColor=Color.Red;

重新阅读您的问题,更新示例以使用代码,而不是XAML