Я реализовал пользовательский StackLayout в своем проекте Xamarin.Forms, чтобы сделать фон ContentPage градиентом, и я хочу изменить поток градиента в коде в зависимости от ОС устройства. Проблема в том, что когда я присваиваю значение x: Name, я не могу найти его в классе xaml.cs, поэтому я не могу получить доступ к его свойствам. Вот код:
Пользовательский код StackLayout:
namespace MyProject.Renderers
{
public class GradientLayout : StackLayout
{
public string ColorsList { get; set; }
public Color[] Colors
{
get
{
string[] hex = ColorsList.Split(',');
Color[] colors = new Color[hex.Length];
for (int i = 0; i < hex.Length; i++)
{
colors[i] = Color.FromHex(hex[i].Trim());
}
return colors;
}
}
public GradientColorStackMode Mode { get; set; }
}
}
xaml код:
<renderers:GradientLayout
x:Name="theGradient"
ColorsList="#D81BDE,#4847FF"
Mode="ToBottomLeft">
//Irrelevant content
</renderers:GradientLayout>
xaml.cs код:
public partial class LogInPage : ContentPage
{
public LogInPage()
{
InitializeComponent();
if (Device.RuntimePlatform == Device.iOS)
{
//theGradient do not appear
}
}
}
И это все, если вам нужна дополнительная информация, я предоставлю ее, как только увижу ваш запрос, спасибо всем за потраченное время, хорошего дня.