#xaml #xamarin #popup #nuget #xamarin.forms
#xaml #xamarin #всплывающее окно #nuget #xamarin.forms
Вопрос:
Я разрабатываю IOS
приложение, используя Xamarin.Forms
, в этом приложении я показываю всплывающее окно с использованием Rg.Плагины.Всплывающее окно. Я пытался изменить border radius(Increase)
popup window
, но не смог этого добиться. кто-нибудь, пожалуйста, помогите мне внести эти изменения в мое приложение.
Ожидаемый экран
Фактический экран
Popup.xaml
<?xml version="1.0" encoding="utf-8" ?>
<pages:PopupPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:pages="clr-namespace:Rg.Plugins.Popup.Pages;assembly=Rg.Plugins.Popup"
x:Class="TestApp.Popup"
xmlns:i18n="clr-namespace:TestApp;assembly=TestApp"
xmlns:local="clr-namespace:TestApp">
<StackLayout VerticalOptions="Center"
HorizontalOptions="FillAndExpand"
Padding="20, 10, 20, 20"
Opacity="0.9">
<Frame BackgroundColor="White"
>
<StackLayout Padding="0, 10, 0, 40" >
<RelativeLayout>
<Label x:Name="congratsText"
Text=""
TextColor="#396BA2"
FontAttributes="Bold"
FontSize="20"
FontFamily="MYRIADPRO-BOLD"
HorizontalTextAlignment="Center"
RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent,Property=Width, Factor=1}"
RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Y, Factor=1,Constant=0}"
local:CustomFontEffect.FontFileName="MYRIADPRO-BOLD"/>
<Label x:Name="callText"
TextColor="#396BA2"
FontFamily="MYRIADPRO-REGULAR"
FontSize="18"
Margin="10"
HorizontalTextAlignment="Center"
RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent,Property=Width, Factor=1}"
RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToView, ElementName=foundText, Property=Y, Factor=1,Constant=60}"
local:CustomFontEffect.FontFileName="MYRIADPRO-REGULAR" >
<Label.FormattedText>
<FormattedString>
<FormattedString.Spans>
<Span Text="Please call " />
<Span Text="0987654321" FontAttributes="Bold" />
<Span Text="for any help." />
</FormattedString.Spans>
</FormattedString>
</Label.FormattedText>
</Label>
<Button x:Name="OkButton"
BackgroundColor="#9DC96F"
FontFamily="MYRIADPRO-BOLD"
FontAttributes="Bold"
FontSize="20"
RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=1}"
RelativeLayout.HeightConstraint="40"
Text="Ok"
TextColor="White"
Clicked="ok"
RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToView, ElementName=ResendButton, Property=Y, Factor=1,Constant=75}"
local:CustomFontEffect.FontFileName="MYRIADPRO-BOLD"/>
<Button x:Name="LoginButton"
BorderColor="#9DC96F"
BackgroundColor="White"
BorderWidth="2"
FontFamily="MYRIADPRO-BOLD"
FontAttributes="Bold"
FontSize="20"
RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=1}"
RelativeLayout.HeightConstraint="40"
Text="Cancel"
TextColor="#9DC96F"
Clicked="Cancel"
RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToView, ElementName=OkButton, Property=Y, Factor=1,Constant=55}"
local:CustomFontEffect.FontFileName="MYRIADPRO-BOLD"/>
</RelativeLayout>
</StackLayout>
</Frame>
</StackLayout>
</pages:PopupPage>
Комментарии:
1. Согласно README для github.com/rotorgames/Rg . Плагины. Всплывающее окно нет свойства border radius, которое можно настроить для всплывающей страницы. Либо свяжитесь с автором библиотеки и предложите ее добавить, либо загрузите исходный код и измените его самостоятельно, чтобы добавить настройку радиуса границы.
2. Спасибо @jgoldberger за ваше предложение. есть ли какие-либо другие
plugin
доступные способы отображения всплывающего окна вместе с настройкойborder radius
?3. Вы можете загрузить исходный код с github и добавить его самостоятельно.
Ответ №1:
Я создатель этого плагина. Плагин не поддерживает радиус границы. Это не обязанность плагина. Плагин должен показывать всплывающую страницу и только. Вы должны создавать сами представления и стили. Спасибо.
Комментарии:
1. у вас есть какой-либо документ о том, как использовать этот плагин.
2. @Gagan_iOS Да. Документацию можно найти на странице github
Ответ №2:
Я успешно добился этого, установив BackgroundColor
для внешнего StackLayout
значения значение Transparent. Затем устанавливает CornerRadius
свойство на внутреннем Frame
Ответ №3:
Заменяет <Frame BackgroundColor="White">
С помощью <Frame BackgroundColor="White" CornerRadius="40">