How would I change the Button text color on a Xamarin Forms DisplayAlert dialog?
FWIW, I opted to create a new ContentPage in XAML and show it with Navigation.PushModalAsync. In my case, it was the easiest way to simulate an alert and maintain control of all the styles.
XAML:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="YourNamespace.AlertPage"
             BackgroundColor="DarkGray"
             Padding="40">
    <ContentPage.Content>
        <StackLayout BackgroundColor="White" Padding="10">
            <Label x:Name="lblTitle" FontAttributes="Bold" FontSize="Large" Text="Title" HorizontalOptions="Center"></Label>
            <BoxView HeightRequest="1" BackgroundColor="DarkGray"></BoxView>
            <ScrollView Orientation="Vertical" VerticalOptions="FillAndExpand">
                <Label x:Name="lblText" FontSize="Medium"></Label>
            </ScrollView>
            <BoxView HeightRequest="1" BackgroundColor="DarkGray"></BoxView>
            <StackLayout Orientation="Horizontal">
                <Button x:Name="btn1" Text="Button 1" HorizontalOptions="CenterAndExpand"></Button>
                <Button x:Name="btn2" Text="Button 2" HorizontalOptions="CenterAndExpand"></Button>
            </StackLayout>
        </StackLayout>
    </ContentPage.Content>
</ContentPage>
C#:
public partial class AlertPage : ContentPage
{
    public Label LblTitle
    {
        get
        {
            return lblTitle;
        }
    }
    public Label LblText
    {
        get
        {
            return lblText;
        }
    }
    public Button Button1
    {
        get
        {
            return btn1;
        }
    }
    public Button Button2
    {
        get
        {
            return btn2;
        }
    }
    public AlertPage()
    {
        InitializeComponent();
    }
}
Implementation:
var ap = new AlertPage();
ap.LblTitle.Text = "Instructions";
ap.LblText.Text = "The text to display!";
ap.Button1.Text = "Done";
ap.Button1.Clicked += async (s, a) =>
{
    await Navigation.PopModalAsync();
};
ap.Button2.IsVisible = false;
await Navigation.PushModalAsync(ap);
Screenshot:

Possible to change color with the help of custom renderers for each platform. You have access to native api inside custom renderer. But need to be sure that is needed, because it is not recommended (for iOS sure).
The UIAlertView class is intended to be used as-is and does not support subclassing. The view hierarchy for this class is private and must not be modified.
Relative topic for iOS here.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With