Xamarin.forms Xamarin表单布局-基于项目重复框架';s属性

Xamarin.forms Xamarin表单布局-基于项目重复框架';s属性,xamarin.forms,Xamarin.forms,我有一个Xamarin表单应用程序,在我的表单中有一个显示彩色文本和颜色的代码,如下所示: <StackLayout HorizontalOptions="EndAndExpand"> <Frame Padding="0" BorderColor="#EBEBEB" CornerRadius="20" HasShadow=&qu

我有一个Xamarin表单应用程序,在我的表单中有一个显示彩色文本和颜色的代码,如下所示:

<StackLayout HorizontalOptions="EndAndExpand">
    <Frame
        Padding="0"
        BorderColor="#EBEBEB"
        CornerRadius="20"
        HasShadow="False"
        HorizontalOptions="FillAndExpand">
        <StackLayout
            HorizontalOptions="FillAndExpand"
            Orientation="Horizontal"
            VerticalOptions="CenterAndExpand">
            <Label
                Margin="20,15,35,15"
                FontSize="14"
                HorizontalOptions="StartAndExpand"
                Text="Color"
                TextColor="Black"
                VerticalTextAlignment="Center">
                <Label.FontFamily>
                    <OnPlatform x:TypeArguments="x:String">
                        <On Platform="Android" Value="SFPro.ttf#Bold" />
                    </OnPlatform>
                </Label.FontFamily>
            </Label>

            <Frame 
                Margin="35,15,20,15"
                Padding="0"
                BackgroundColor="#33427D"
                CornerRadius="8"
                HasShadow="False"
                HeightRequest="22"
                WidthRequest="22" />

        </StackLayout>
    </Frame>
</StackLayout>
有人可以帮助我如何更改代码以生成对视图的更改吗

问候
Kiran

正如@Jason所说,您可以使用BindableLayout

在xaml中

使用可绑定的布局-@KucasZhang:谢谢,我想我尝试了所有的方法,除了
ScrollView Orientation=“Horizontal”
这一点。
public string[] AvailableColors
{
    get
    {
        string[] result = { "red", "blue", "green", "black" };
        return result;
    }
}
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="App6.MainPage">

    <StackLayout VerticalOptions="CenterAndExpand" HorizontalOptions="CenterAndExpand">
        <StackLayout HorizontalOptions="EndAndExpand">
            <Frame
        Padding="0"
        BorderColor="#EBEBEB"
        CornerRadius="20"
      
        HasShadow="False"
        HorizontalOptions="FillAndExpand">
                <StackLayout
            HorizontalOptions="FillAndExpand"
            Orientation="Horizontal"
            VerticalOptions="CenterAndExpand">
                    <Label
                Margin="20,15,10,15"
                FontSize="14"
                HorizontalOptions="StartAndExpand"
                Text="Color"
                TextColor="Black"
                VerticalTextAlignment="Center">
                        
                    </Label>

                    <ScrollView Orientation="Horizontal" BackgroundColor="LightBlue">

                        <StackLayout Orientation="Horizontal"  BindableLayout.ItemsSource="{Binding ColorList}">

                            <BindableLayout.ItemTemplate>
                                <DataTemplate>

                                    <Frame 
                                         Margin="35,15,20,15"
                                         Padding="0"
                                         BackgroundColor="{Binding .}"
                                         CornerRadius="8"
                                          HasShadow="False"
                                          HeightRequest="22"
                                         WidthRequest="22" />

                                </DataTemplate>
                            </BindableLayout.ItemTemplate>


                        </StackLayout>

                    </ScrollView>

                </StackLayout>
            </Frame>
        </StackLayout>
    </StackLayout>

</ContentPage>

public class ViewModel
{
    public ObservableCollection<Color> ColorList { get; set; }

    public string[] AvailableColors
    {
        get
        {
            string[] result = { "red", "blue", "green", "black" };
            return result;
        }
    }
    public ViewModel()
    {
        ColorList = new ObservableCollection<Color>() { };

        ColorTypeConverter converter = new ColorTypeConverter();

        foreach (var color in AvailableColors)
        {

            Color newColor = (Color)(converter.ConvertFromInvariantString(color));
            ColorList.Add(newColor);
        }
       
    }
}
public MainPage()
{
  InitializeComponent();
  BindingContext = new ViewModel();
}