有没有一种方法可以使用Xamarin.Forms在.alert中包含格式化文本?

有没有一种方法可以使用Xamarin.Forms在.alert中包含格式化文本?,xamarin,xamarin.forms,Xamarin,Xamarin.forms,我有一个格式化的字符串。在代码中,它不仅仅是这样,但这只是一个示例: var fs = new FormattedString(); fs = fs.Spans.Add(new Span { Text = "ABC, ForegroundColor = Color.FromHex("555555") }); 有没有一种方法可以在警报中使用格式化文本 var answer = await DisplayAlert ("Test", alertText, "Yes", "No"); 我认为答案是

我有一个格式化的字符串。在代码中,它不仅仅是这样,但这只是一个示例:

var fs = new FormattedString();
fs = fs.Spans.Add(new Span { Text = "ABC, ForegroundColor = Color.FromHex("555555") });
有没有一种方法可以在警报中使用格式化文本

var answer = await DisplayAlert ("Test", alertText, "Yes", "No");

我认为答案是否定的。我建议您使用以下软件包创建自己的popupAlert


我经常这样做,没有任何第三方插件。这并不是一个警报,技术上我只是在堆栈上弹出一个新的导航视图。它可能很适合你的需要

在我的PCL项目中,我有一个FormHelpers类,它处理各种带有/不带OK/Cancel按钮和格式化文本等的弹出窗口。下面是我的通用格式化警报弹出窗口,您可以在此基础上进行构建:

public class FormHelpers
{
public static async Task FormattedPoppup(INavigation navigation, string message)
        {
            var lblTitle = new Label { Text = "Alert", HorizontalOptions = LayoutOptions.Center, FontAttributes = FontAttributes.Bold };
            var lblMessage = new Label { Text = message };

            var btnOk = new Button
            {
                Text = "Ok",
                WidthRequest = 100,
                BackgroundColor = Color.FromRgb(0.8, 0.8, 0.8),
            };
            btnOk.Clicked += async (s, e) =>
            {
                // close page
                await navigation.PopModalAsync();
            };

            var layout = new StackLayout
            {
                Padding = new Thickness(0, 40, 0, 0),
                VerticalOptions = LayoutOptions.StartAndExpand,
                HorizontalOptions = LayoutOptions.CenterAndExpand,
                Orientation = StackOrientation.Vertical,
                Children = { lblTitle, lblMessage, btnOk },
            };

            var page = new ContentPage();
            page.Content = layout;
            await navigation.PushModalAsync(page);
        }
    }
从表单视图上的按钮单击调用示例:

private async void button_Test_Clicked(object sender, EventArgs e)
{
    await FormHelpers.FormattedPoppup(this.Navigation, "Some alert displayed here");
}
我从这篇文章中得到了这个想法,并且有许多不同的版本/修改用于不同的目的:

private async void button_Test_Clicked(object sender, EventArgs e)
{
    await FormHelpers.FormattedPoppup(this.Navigation, "Some alert displayed here");
}