У меня есть необходимость вставить фон в сетку, которая подходит только в соответствии с размером устройства. Я попробовал тысячу комбинаций, но остаюсь маленьким или не подходит всем. На приведенном ниже рисунке вы можете увидеть красное изображение, которое мне нужно адаптировать к сетке, сетке, которая находится во второй половине нижнего экрана.Вставить фоновое изображение в сетку, которая соответствует размеру с формами Xamarin pcl
Я пытаюсь поместить изображение в сетке, изображение имеет х: Name = «BackgroundImage», то, что объект, который я должен адаптироваться ко всей сетке второй половины экран, как я могу это сделать? вот код:
<?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="Fimap.Login"
BackgroundColor="#333">
<ContentPage.Padding>
<OnPlatform x:TypeArguments="Thickness"
iOS="0,0,0,0"
Android="0,0,0,0"
WinPhone="0,0,0,0" />
</ContentPage.Padding>
<ContentPage.Content>
<ScrollView>
<StackLayout VerticalOptions="Center" HorizontalOptions="CenterAndExpand" Orientation="Vertical" Spacing="0">
<ActivityIndicator x:Name="loadingBeforeLogin" IsVisible="true" Color="#008ECC" IsRunning="true" />
</StackLayout>
<RelativeLayout VerticalOptions="Center" HorizontalOptions="CenterAndExpand" x:Name="allContent">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="5*"></RowDefinition>
<RowDefinition Height="5*"></RowDefinition>
</Grid.RowDefinitions>
<!-- immagini loghi e scritta login sopra-->
<Grid Grid.Row="0" BackgroundColor="#1f2429">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"></ColumnDefinition>
<ColumnDefinition Width="6*"></ColumnDefinition>
<ColumnDefinition Width="2*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions Height="*">
<RowDefinition Height="2*"></RowDefinition>
<RowDefinition Height="6*"></RowDefinition>
</Grid.RowDefinitions>
<Image Aspect="AspectFit" x:Name="logoScritta" Grid.Row="0" Grid.Column="1" Source="Images/fimaLogoLogin.png"></Image>
<Image Aspect="AspectFit" x:Name="logo" Grid.Row="1" Grid.Column="1" Source="Images/logo.png"></Image>
<Label TextColor="#fff" Grid.Row="2" FontSize="22" Grid.Column="1" Text="Login" />
</Grid>
<!-- username e password input e ricorda password -->
<Grid Grid.Row="1">
<Image x:Name="backgroundImage"/>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"></ColumnDefinition>
<ColumnDefinition Width="6*"></ColumnDefinition>
<ColumnDefinition Width="2*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1*"></RowDefinition>
<RowDefinition Height="2*"></RowDefinition>
<RowDefinition Height="2*"></RowDefinition>
<RowDefinition Height="2*"></RowDefinition>
<RowDefinition Height="2*"></RowDefinition>
<RowDefinition Height="2*"></RowDefinition>
</Grid.RowDefinitions>
<ActivityIndicator x:Name="loading" Grid.Row="0" Grid.Column="1" IsVisible="false" Color="#008ECC" IsRunning="true" />
<Label TextColor="#2196F3" Grid.Row="1" Grid.Column="1" Text="" />
<Entry TextColor="#2196F3" PlaceholderColor="#A9D6FA" FontSize="24" Grid.Row="1" Grid.Column="1" Placeholder="Username" x:Name="UsernameEntry" Text="" />
<Label TextColor="#2196F3" Grid.Row="2" Grid.Column="1" Text="" />
<Entry TextColor="#2196F3" PlaceholderColor="#A9D6FA" FontSize="24" Grid.Row="2" Grid.Column="1" Placeholder="Password" IsPassword="True" x:Name="PasswordEntry" Text="" />
<Button x:Name="LoginButton" FontSize="22" Grid.Row="3" Grid.Column="1" Text="Accedi" Clicked="Login_OnClicked"/>
<Grid Grid.Row="4" Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="1*"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="7*"></ColumnDefinition>
<ColumnDefinition Width="3*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label TextColor="#2196F3" Text="Ricorda accesso" Grid.Row="0" Grid.Column="0"></Label>
<Switch x:Name="switchRememberPassword" Grid.Row="0" Grid.Column="1"></Switch>
</Grid>
<Label x:Name="recuperaPassword" Grid.Row="5" Grid.Column="1" TextColor="#2196F3" Text="Hai dimenticato la password?" FontSize="12"></Label>
</Grid>
</Grid>
</RelativeLayout>
</ScrollView>
</ContentPage.Content>
</ContentPage>
РЕШЕНИЕ добавить изображение из отделенного кода C# в RelativeLayout с именем относительной
Image backgroundImage = new Image();
backgroundImage.Source = "loginBackground.png";
backgroundImage.Aspect = Aspect.AspectFill;
relative.Children.Add(backgroundImage,
Constraint.RelativeToParent((parent) =>
{
backgroundImage.WidthRequest = parent.Width;
return 0;
}),
Constraint.RelativeToParent((parent) =>
{
return parent.Height - backgroundImage.Height;
})
);
Измените свой вопрос, чтобы обеспечить больше информации, а не создавать одинаковые вопросы те же темы снова и снова. –
Возможный дубликат [центральное изображение внутри релятивирования и выравнивание по нижним формам xamarin] (http://stackoverflow.com/questions/41243604/center-image-inside-relativelayout-and-align-to-bottom-xamarin-forms) –
Есть несколько вопросов друг к другу, с теми же примерами, но с различными просьбами, прежде чем писать законы тщательно, пожалуйста. Я учусь, и мне нужно несколько примеров. –