Я создаю мобильное приложение в качестве учебного/хобби-проекта, и мне было любопытно, как далеко я могу продвинуть проекты в приложении xamarin. Есть ли способ представить согласованную объединительную плату или образ в приложении, использующем MasterDetailPage в основном представлении? Эффект, которого я пытаюсь достичь, заключается в том, что когда отображается каждая страница с прозрачным фоном, фон приложения никогда не меняется или вообще является частью перехода страницы.
А.
Поскольку любой тип страницы (Shell, NavigationPage, ContentPage и т. д.), который является производным от Page
, имеет свойство BackgroundImageSource
, вы можете определить значение глобально в App.xaml.
<Application.Resources>
<Style ApplyToDerivedTypes = "True" TargetType = "Page">
<Setter Property = "BackgroundImageSource" Value = "your_image.png" />
</Style>
</Application.Resources>
Б.
Что ж, если вы хотите применить его только для страниц MasterDetail, вы можете просто установить стиль только для NavigationPage
.
<Application.Resources>
<Style TargetType = "NavigationPage">
<Setter Property = "BackgroundImageSource" Value = "your_image.png" />
</Style>
</Application.Resources>
Если вы хотите, чтобы все страницы в вашем проекте имели одинаковый фон, вы можете создать BaseContentPage с background image
или backgroundColor
, а затем все остальные страницы наследуются от BaseContentPage
:
Базовая страница содержимого:
public class BasePage : ContentPage
{
public BasePage()
{
this.BackgroundImageSource = "logo.jpg";
}
}
Другие страницы вашего проекта:
public partial class Page1 : BasePage
{
public Page1()
{
InitializeComponent();
}
}
В XAML:
<?xml version = "1.0" encoding = "utf-8" ?>
<xaminals:BasePage xmlns:xaminals = "clr-namespace:Xaminals"
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"
x:Class = "Xaminals.Page1">
<xaminals:BasePage.Content>
<StackLayout>
<Label Text = "Welcome to Xamarin.Forms!"
VerticalOptions = "CenterAndExpand"
HorizontalOptions = "CenterAndExpand" />
</StackLayout>
</xaminals:BasePage.Content>
</xaminals:BasePage>
Тогда все страницы будут иметь изображение логотипа в качестве фонового изображения.