XamarinForms:在 XAML 中使用来自自定义渲染器的控件

XamarinForms: Use a Control from a Custom Renderer in XAML

我在 Xamarin 中创建了自己的自定义渲染器,如下所示:

namespace TestApp
{
    public class CustomEntry : Entry
    {
        public CustomEntry ()
        {
        }
    }
}

如何将其包含在我的 HomePage.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" 
xmlns:local="clr-namespace:TestApp;assembly:TestApp" 
x:Class="TestApp.SubPage">
    <ContentPage.Content>
        <StackLayout>
            <local:CustomEntry></local:CustomEntry>
        </StackLayout>
    </ContentPage.Content>
</ContentPage>

但是没有用,说 CustomEntry 不是“http://xamarin.com/schemas/2014/forms”命名空间中的有效控件。有什么想法吗?

尝试将 <x:local="clr-namespace:TestApp;assembly:TestApp"> 更改为 <xmlns:local="clr-namespace:TestApp;assembly:TestApp">

<x:local:CustomEntry>变成<local:CustomEntry>

没关系,我发现了问题。看来我的 xmlns:local 声明是错误的。我有这个:

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
xmlns:local="clr-namespace:TestApp;assembly:TestApp" 
x:Class="TestApp.SubPage">

是这样的:

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
xmlns:local="clr-namespace:TestApp;assembly=TestApp" 
x:Class="TestApp.SubPage">

似乎程序集是用“=”运算符分配的,而不是“:”运算符。 class 保持不变,现在一切正常。