Skip to content

Commit

Permalink
Fixed iOS RadialGradientBrush position issue (xamarin#11733)
Browse files Browse the repository at this point in the history
  • Loading branch information
jsuarezruiz authored and sung-su committed Aug 20, 2020
1 parent c6fda08 commit e0846a0
Show file tree
Hide file tree
Showing 4 changed files with 130 additions and 13 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
<?xml version="1.0" encoding="utf-8" ?>
<local:TestContentPage
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
xmlns:local="using:Xamarin.Forms.Controls"
x:Class="Xamarin.Forms.Controls.Issues.Issue11573"
Title="Issue 11573">
<ScrollView>
<StackLayout>
<Label
Padding="12"
BackgroundColor="Black"
TextColor="White"
Text="If the RadialGradientBrush Radius is the same in all cases, the test has passed."/>
<StackLayout
Padding="12">
<Label
Text="RadialGradientBrush (Upper left)"
FontAttributes="Bold" />
<Frame
Margin="0,12,0,0"
BorderColor="LightGray"
HasShadow="True"
CornerRadius="12"
HeightRequest="60"
WidthRequest="120">
<Frame.Background>
<RadialGradientBrush Center="0.1,0.1"
Radius="0.5">
<RadialGradientBrush.GradientStops>
<GradientStop Color="Red"
Offset="0.1" />
<GradientStop Color="DarkBlue"
Offset="1.0" />
</RadialGradientBrush.GradientStops>
</RadialGradientBrush>
</Frame.Background>
</Frame>
<Label
Margin="0,12,0,0"
Text="RadialGradientBrush (Center)"
FontAttributes="Bold" />
<Frame
Margin="0,12,0,0"
BorderColor="LightGray"
HasShadow="True"
CornerRadius="12"
HeightRequest="60"
WidthRequest="120">
<Frame.Background>
<RadialGradientBrush Center="0.5,0.5"
Radius="0.5">
<RadialGradientBrush.GradientStops>
<GradientStop Color="Red"
Offset="0.1" />
<GradientStop Color="DarkBlue"
Offset="1.0" />
</RadialGradientBrush.GradientStops>
</RadialGradientBrush>
</Frame.Background>
</Frame>
<Label Margin="0,12,0,0"
Text="RadialGradientBrush (Lower right)"
FontAttributes="Bold" />
<Frame
Margin="0,12,0,0"
BorderColor="LightGray"
HasShadow="True"
CornerRadius="12"
HeightRequest="60"
WidthRequest="120">
<Frame.Background>
<RadialGradientBrush Center="0.9,0.9"
Radius="0.5">
<RadialGradientBrush.GradientStops>
<GradientStop Color="Red"
Offset="0.1" />
<GradientStop Color="DarkBlue"
Offset="1.0" />
</RadialGradientBrush.GradientStops>
</RadialGradientBrush>
</Frame.Background>
</Frame>
</StackLayout>
</StackLayout>
</ScrollView>
</local:TestContentPage>
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
using System.Collections.Generic;
using Xamarin.Forms.CustomAttributes;
using Xamarin.Forms.Internals;
using Xamarin.Forms.Xaml;

#if UITEST
using Xamarin.Forms.Core.UITests;
using Xamarin.UITest;
using NUnit.Framework;
#endif

namespace Xamarin.Forms.Controls.Issues
{
[Preserve(AllMembers = true)]
[Issue(IssueTracker.Github, 11573, "[Bug][Brushes] RadialGradient size on iOS",
PlatformAffected.iOS)]
#if UITEST
[NUnit.Framework.Category(UITestCategories.Brush)]
#endif
public partial class Issue11573 : TestContentPage
{
public Issue11573()
{
#if APP
Device.SetFlags(new List<string> { ExperimentalFlags.BrushExperimental });

InitializeComponent();
#endif
}

protected override void Init()
{

}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -1475,6 +1475,7 @@
<Compile Include="$(MSBuildThisFileDirectory)Issue11430.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Issue11247.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Issue10608.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Issue11573.xaml.cs" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="$(MSBuildThisFileDirectory)Bugzilla22229.xaml">
Expand Down Expand Up @@ -1750,6 +1751,9 @@
<EmbeddedResource Include="$(MSBuildThisFileDirectory)Issue11547.xaml">
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
</EmbeddedResource>
<EmbeddedResource Include="$(MSBuildThisFileDirectory)Issue11573.xaml">
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="$(MSBuildThisFileDirectory)Bugzilla27417Xaml.xaml">
Expand Down
13 changes: 0 additions & 13 deletions Xamarin.Forms.Platform.iOS/Extensions/BrushExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -203,21 +203,8 @@ static bool ShouldUseParentView(UIView view)
static CGPoint GetRadialGradientBrushEndPoint(Point startPoint, double radius)
{
double x = startPoint.X == 1 ? (startPoint.X - radius) : (startPoint.X + radius);

if (x < 0)
x = 0;

if (x > 1)
x = 1;

double y = startPoint.Y == 1 ? (startPoint.Y - radius) : (startPoint.Y + radius);

if (y < 0)
y = 0;

if (y > 1)
y = 1;

return new CGPoint(x, y);
}
}
Expand Down

0 comments on commit e0846a0

Please sign in to comment.