Mar*_*l B 5 .net c# wpf xaml visual-studio
我为我的项目创建了一个CustomControl,我将创建更多.所有这些控件都有一些共同点,所以我创建了一个继承自UserControl的抽象类.
如果我通过VisualStudio创建一个CustomControl,它也继承自UserControl,我无法将其切换到我的抽象UserControl,因为VisualStudio将添加一些生成的代码文件.我不想搞砸这些文件.
我可以创建一个空的代码文件并自己编写所有内容,但后来我不能使用XAML(或者我只是不知道如何).
那么如何在不丢失XAML的情况下使用自定义基类创建CustomControl?
mic*_*tan 12
首先,您不能在UserControl类层次结构中轻松使用抽象类 - 它不能与设计器一起使用(您将获得"无法创建"AbstractBase"消息的实例).Windows表单曾经有同样的问题并且有一些解决方法,所有这些都是痛苦的.
删除"abstract"之后,您应该能够通过在XAML定义中包含命名空间来引用您的基类,并更改后面的代码,如下所示:
<local:AbstractBase x:Class="Test.ConcreteControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Test"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid>
</Grid>
</local:AbstractBase>
Run Code Online (Sandbox Code Playgroud)
和:
/// <summary>
/// Interaction logic for ConcreteControl.xaml
/// </summary>
public partial class ConcreteControl : AbstractBase
{
public ConcreteControl()
{
InitializeComponent();
}
}
Run Code Online (Sandbox Code Playgroud)
这假设您的基类被称为"AbstractBase"
| 归档时间: |
|
| 查看次数: |
5710 次 |
| 最近记录: |