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