Xamarin.Android: 当我以编程方式创建一个按钮时,为什么它有边距?

Xamarin.Android: When I create a button programmatically, why does it have a margin?

编辑:我想我明白了。 xml 中的背景导致了差异。

问:

我正在尝试向我的应用程序动态添加按钮。 (我需要创建 1-6 个按钮)

当我尝试在 XML 中创建一个按钮(以测试外观)时,它看起来像这样:

Buttons created in XML

这是我用来创建的 xml:

<Button
    android:layout_width="match_parent"
    android:layout_height="100dp"
    android:background="@android:color/darker_gray"
    android:text="add button"
/>

<Button
  android:layout_width="match_parent"
  android:layout_height="100dp"
  android:background="@android:color/darker_gray"
  android:text="add button"
  android:layout_marginTop="10dp"
  android:layout_marginBottom="10dp"
/>            

但是当我尝试以编程方式创建它时,按钮的两侧有边距并且看起来有点凸起。

如何让编程按钮看起来与 XML 按钮相同?

是否有一些额外的样式发生在某处?

Dynamically created buttons (below XML buttons)

这是我用来动态创建按钮的代码:

var button = new Button(this);

var height = Utility.DpToPx(this, 100);
var width = ViewGroup.LayoutParams.MatchParent;

var layoutParameters = new LinearLayout.LayoutParams(width, height);
button.LayoutParameters = layoutParameters;
button.Text = "Test";

编辑: 我想我明白了。这是我放在 xml 中的背景导致了不同的效果:

android:background="@android:color/darker_gray"

我之所以感到困惑,是因为我没有为以编程方式创建的按钮添加背景色。这就是外观不同的原因。