我有一个问题,我不知道我是否可以这样做,或者是否有另一种方法可以做到。我有一个名为“ BasePage”的抽象类,它是我的.NET Standard库,因此无法访问System.Windows命名空间。它的声明是:
public abstract class BasePage<VR> where VR : new()
编辑:上面的类具有可访问VR的公共属性
现在,对于每个平台(WPF,Xamarin等),我必须创建自己的类开始 VR 的实现,以实现每个平台的内容控件(例如,用于WPF的UserControl)。我已经做到了,这是:
public class WindowsBasePage : BasePage<UserControl>
现在,每次我想创建一个页面来向窗口添加内容时,我都必须创建类似这样的内容:
public partial class UserPassPage : WindowsBasePage
{
public UserPassPage()
{
InitializeComponent();
}
}
当我必须在XAML文件(视图)中进行设置时,问题就出现了。我可以创建它并构建:
<local:WindowsBasePage x:Class="Bitture.AppManager.Manager.UserPassPage"
[...]
xmlns:local="clr-namespace:Bitture.AppManager.Manager"
mc:Ignorable="d" >
</local:WindowsBasePage>
但是我不能添加组件(例如按钮,文本,网格,堆栈面板等)。我想知道我是否可以使用当前代码执行此操作,或者需要更改某些内容。因为我必须访问继承自
的通用类型WindowsBasePage
class WindowsBasePage : BasePage<UserControl>
答案 0 :(得分:0)
我不确定您要在此处做什么,但是您无法将UIElements
添加到您的自定义类中,该自定义类不能从任何常见的WPF基类(例如{{ 1}}或Panel
,并希望将其呈现为ContentControl
或其他WPF控件。
这行不通。 WPF知道如何呈现WPF控件,但不知道如何呈现自定义UserControl
。