我正在尝试使用Xamarin Forms实现TabbedPage。它与TabbedPage and Content pages are not showing
非常相似但是关于如何从MainPage.xam中包含其他xaml文件,我有一个简短的问题:
这是我的代码: 主页:
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Assignment"
x:Class="Assignment.MainPage">
<TabbedPage.Children>
<local:Alarm /> "The type 'local:Alarm' was not found. Verify that you are not missing..."
</TabbedPage.Children>
上面的错误是唯一的构建错误。
Alarm.xaml:
<?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="Assignment.Droid.Resources.layout.Alarm">
<ContentPage.Content>
<StackLayout>
<Label Text="Welcome to Xamarin.Forms!"
VerticalOptions="CenterAndExpand"
HorizontalOptions="CenterAndExpand" />
</StackLayout>
</ContentPage.Content>
</ContentPage>
这是我的项目结构:
在另一个链接上,我看到他将他的xaml文件放在布局文件夹中。
这是正确的设置吗?我想我错过了一些简单的事情。
答案 0 :(得分:0)
如Greggz所述:将其移至您的共享项目中。
然后,您将不得不更改名称空间,因为这实际上很重要。在.NET领域中,习惯上,名称空间等于文件系统上的路径。
在您Alarm.xaml
中,将此行从x:Class="Assignment.Droid.Resources.layout.Alarm"
更改为x:Class="Assignment.Alarm"
。
然后进入您的代码隐藏Alarm.xaml.cs
文件,并在那里也更改名称空间。因此,将namespace Assignment.Droid.Resources.layout
更改为namespace Assignment
。
由于XAML及其背后的代码均作为部分类实现,因此需要同步。