Как сказал @hichame, ваша кнопка не становится больше.Вы можете прочитать это и это , чтобы понять, почему ваша кнопка выглядит больше.
О цвете кнопки вы можете обратиться к этому использованиюandroid.R.drawable.btn_default
:
button.SetBackgroundResource(Android.Resource.Drawable.ButtonDefault);
для сброса вашей кнопки.Но результат не похож на исходную кнопку.
Наконец, я получаю цвет кнопки по умолчанию: #D6D7D7
.
Вы можете использовать это значение, чтобы сбросить цвет вашей кнопки напо умолчанию:
button.Background.SetTintList(ColorStateList.ValueOf(Color.ParseColor("#D6D7D7")));
Обновление:
После прочтения этого ответа, я нахожу решение, вам нужно использовать AppCompatButton
, установить Xamarin.Android.Support.v7.AppCompat , используйте его в вашем макете:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.AppCompatButton
android:id="@+id/bt1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<android.support.v7.widget.AppCompatButton
android:id="@+id/bt2"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
Используйте SupportBackgroundTintList
в вашем MainActivity
(также поэтому ваше возвращаемое значение равно нулю):
public class MainActivity : AppCompatActivity,View.IOnClickListener
{
AppCompatButton bt1;
ColorStateList backgroundTintList;
public void OnClick(View v)
{
bt1.SupportBackgroundTintList=(backgroundTintList);
//bt1.SetBackgroundResource(Android.Resource.Drawable.ButtonDefault);
}
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.activity_main);
bt1 = FindViewById<AppCompatButton>(Resource.Id.bt1);
AppCompatButton bt2 = FindViewById<AppCompatButton>(Resource.Id.bt2);
backgroundTintList = bt2.SupportBackgroundTintList;
bt1.SupportBackgroundTintList=ColorStateList.ValueOf(Color.Red);
bt2.SetOnClickListener(this);
}
}
Результат: