如何使用Xamarin Forms中的此aritchie / userdialogs自定义警报确定/取消按钮

时间:2018-03-21 14:34:50

标签: xaml xamarin xamarin.forms xamarin.ios xamarin.android

您好,我是Xamarin Forms的新手,来自原生iOS开发。

要显示提醒/操作表,我使用此https://github.com/aritchie/userdialogs

为了实现这一点,我遵循了How to use Acr.UserDialogs

我通过以下方式成功获得警报,但现在我需要自定义确定/取消按钮的背景颜色,对齐方式,帧值,隐藏和显示按钮。。 提前谢谢。

3 个答案:

答案 0 :(得分:1)

使用Rg.Plugins.Popup Nuget,您可以自定义弹出窗口。

答案 1 :(得分:0)

  

我需要自定义确定/取消按钮的背景颜色,对齐方式,帧值,隐藏和显示按钮。

作为作者said,您可以通过创建样式并将其应用于AlertConfig来实现。
例如:
在style.xml中:

 <style name="AlertDialogCustom" parent="Theme.AppCompat.Light.Dialog.Alert">
    <!-- Used for the buttons -->
    <item name="colorAccent">#AAAAAA</item>
    <!-- Used for the title and text -->
    <item name="android:textColorPrimary">#FFFFFF</item>
    <!-- Used for the background -->
    <item name="android:background">#DDDDDD</item>
   <!-- Used for the Alignment -->
   <item name="android:gravity">center_horizontal</item>
</style>

您可以在Resource.Designer.cs中找到此样式ID。

// aapt resource value: 0x7f0b0189
public const int AlertDialogCustom = 2131427721;

然后在代码中创建一个AlertConfig来配置alertdialog:

AlertConfig alertConfig = new AlertConfig();
alertConfig.OkText = "OKOK";
alertConfig.Message = "Message";
alertConfig.Title = "Title";
alertConfig.AndroidStyleId=2131427721;            
UserDialogs.Instance.Alert(alertConfig);

答案 2 :(得分:0)

最后我没有使用任何金块包。现在我创建了自己的CustomAlert类。我希望它对任何人都有帮助。

@Miguel Angel请看下面的代码

在我的CustomAlert.xaml文件中

<?xml version="1.0" encoding="UTF-8"?>
<ContentView xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="wwww/2009/xaml" x:Class="MY.UserControls.CustomAlert">

<Grid RowSpacing="0" ColumnSpacing="0"> 

      <Grid BackgroundColor="#656565" Opacity="0.5">
       </Grid>

      <StackLayout  BackgroundColor="{StaticResource WhiteColor}"                     VerticalOptions="Center" Margin="10" Padding="10" >

<Label  Text="Title" FontSize="18" HorizontalTextAlignment="Center" Margin="0,0,0,0" TextColor="Black"></Label>

<Label  Text="Descrption." FontSize="14" 
HorizontalTextAlignment="Start"
Margin="10,10,5,5" 
VerticalOptions="Center" TextColor="Gray"></Label>

<Button Text="OK" TextColor="{StaticResource WhiteColor}"
Command="{Binding DismissCustomAlertCommand}" 
HorizontalOptions="Center" VerticalOptions="Center" 
BackgroundColor="Red" Margin="30,0,30,0" WidthRequest="400" HeightRequest="40"></Button>

        </StackLayout>
    </Grid>
 </ContentView>

谢谢