Я хочу узнать, как установить MainPage свойство App в MyPage, наследуемое от ContentPage. В App.xaml.cs это легко сделать следующим образом.
MainPage
App
MyPage
ContentPage
App.xaml.cs
public partial class App : Application { public App() { InitializeComponent(); MainPage = new MyPage(); } }
Как сделать то же самое, но из XAML?
<?xml version="1.0" encoding="utf-8" ?> <Application xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://xamarin.com/schemas/2014/forms/design" mc:Ignorable="d" x:Class="MyProject.App"> <!-- Others have been removed only for simplicity! --> <Application.MainPage> <!-- I don't know what I have to do here. --> </Application.MainPage> </Application>
вам нужно объявить локальное пространство имен
<?xml version="1.0" encoding="utf-8" ?> <Application xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://xamarin.com/schemas/2014/forms/design" mc:Ignorable="d" xmlns:local="clr-namespace:MyNamespace" x:Class="MyProject.App"> <Application.MainPage> <local:MyPage /> </Application.MainPage>
Другой подход:
<Application <!--remove for simplicity--> MainPage="{StaticResource myPage}"> <Application.Resources> <ResourceDictionary> <local:MyPage x:Key="myPage"/> </ResourceDictionary> </Application.Resources> </Application>