You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin Forms中XAML与代码后台的引用实现及报错排查

在Xamarin Forms中实现命名空间引用(XAML + 代码后台)

嘿,先帮你揪出问题的核心——你混淆了ASP.NET和Xamarin Forms的技术栈啦!System.Web.UI是ASP.NET的命名空间,Xamarin Forms完全不依赖这个,也没法在Xamarin的环境里引用它,这也是你遇到“未声明前缀”错误的主要原因之一。下面给你详细讲正确的实现方式:

一、XAML中的命名空间引用

XAML里必须先通过xmlns:前缀="..."的格式声明命名空间,才能用前缀调用对应类型,分两种常见场景:

1. 引用项目内的自定义命名空间

如果是同一个项目下的命名空间,格式可以简化成:

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             <!-- 声明local前缀,指向项目内的ViewModels命名空间 -->
             xmlns:local="clr-namespace:MyApp.ViewModels"
             x:Class="MyApp.MainPage">
    <!-- 用local前缀调用命名空间里的ViewModel -->
    <ContentPage.BindingContext>
        <local:MainViewModel />
    </ContentPage.BindingContext>
</ContentPage>

如果是跨项目引用,需要加上assembly=程序集名称,比如xmlns:shared="clr-namespace:MyApp.Shared;assembly=MyApp.Shared"

2. 引用系统/第三方库的命名空间

比如引用Xamarin.Forms.Maps这类官方库,要指定对应的程序集:

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:maps="clr-namespace:Xamarin.Forms.Maps;assembly=Xamarin.Forms.Maps"
             x:Class="MyApp.MapPage">
    <!-- 用maps前缀调用Map控件 -->
    <maps:Map />
</ContentPage>

解决你遇到的“未声明前缀”错误

你代码里的mrkup:Class="System.Web.UI.HtmlTextWriterTag"是完全错误的用法:

  • 首先,你没先声明mrkup这个前缀!正确的做法是先写xmlns:mrkup="..."来绑定命名空间,再用前缀调用类型;
  • 其次,System.Web.UI在Xamarin里根本不存在,引用它没有任何意义;
  • 另外,Xamarin Forms没有原生的<hr/>标签,想要分割线效果,用自带的BoxView就能实现:
<BoxView HeightRequest="1" BackgroundColor="#E0E0E0" HorizontalOptions="FillAndExpand" />

二、代码后台(C#)中的命名空间引用

代码里就简单多了,直接用using关键字引入命名空间就行:

using Xamarin.Forms;
// 引入项目内的自定义命名空间
using MyApp.ViewModels;

namespace MyApp
{
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();
            // 直接使用命名空间里的类型
            BindingContext = new MainViewModel();
        }
    }
}

如果是第三方库,记得先通过NuGet安装对应的包,再用using引用。

内容的提问来源于stack exchange,提问作者Joe Johnston

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:59:03