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

时间:2015-05-20 19:07:58

标签: c# xaml xamarin xamarin.forms custom-renderer

我在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不是&#34; http://xamarin.com/schemas/2014/forms&#34;中的有效控件。命名空间。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

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

<x:local:CustomEntry>加入<local:CustomEntry>

答案 1 :(得分:0)

没关系,我发现了问题。似乎xmns:本地声明我错了。我有这个:

<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">

似乎程序集分配了'='运算符,而不是':'运算符。班级保持不变,现在一切正常。