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 保持不变,现在一切正常。
我在 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 保持不变,现在一切正常。