C# 如何从Xamarin中的代码隐藏向堆栈布局添加自定义视图
我有一个Xamarin表单组件,它在Xaml中有一个StackLayout。我给它起了一个名字叫stackView 我有另一个自定义组件,我想从代码隐藏中以编程方式将其添加到堆栈布局中,但我得到了一个错误,我不知道为什么 我收到的错误表明我的自定义登录视图无法转换为Xamarin.Forms.viewC# 如何从Xamarin中的代码隐藏向堆栈布局添加自定义视图,c#,xaml,xamarin,C#,Xaml,Xamarin,我有一个Xamarin表单组件,它在Xaml中有一个StackLayout。我给它起了一个名字叫stackView 我有另一个自定义组件,我想从代码隐藏中以编程方式将其添加到堆栈布局中,但我得到了一个错误,我不知道为什么 我收到的错误表明我的自定义登录视图无法转换为Xamarin.Forms.view using System; using System.Collections.Generic; using Xamarin.Forms; namespace TechPact { pu
using System;
using System.Collections.Generic;
using Xamarin.Forms;
namespace TechPact
{
public partial class CustomView : ContentPage
{
public CustomView()
{
InitializeComponent();
stackView.Children.Add(new CustomLoginView());
}
}
}
这是我的登录视图
?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="TechPact.CustomLoginView">
<StackLayout>
<Button Text="Login with Facebook" />
</StackLayout>
</ContentPage>
您的CustomLoginView是否扩展了ContentView或其他Xamarin表单视图?
如果您发布的代码确实从ContentView而不是页面派生出CustomLoginView,那么它应该可以工作。我不确定这是否是Xamarin Studio的错误,或者是否更改登录视图以扩展ContentView而不是ContentPage,但在我这样做之后,它现在可以工作了 它扩展ContentPage您的组件应该扩展ContentView,而不是ContentPage。您还可以扩展布局,如StackLayout或AbsoluteLayout,甚至其他视图,如DatePicker,您不能做的一件事是扩展ContentPage
using System;
using System.Collections.Generic;
using Xamarin.Forms;
namespace TechPact
{
public partial class CustomLoginView : ContentPage
{
public TechPactLoginView()
{
InitializeComponent();
}
}
}