将自定义 WPF 控件放置在 StackPanel 中

4

我想要创建一个自定义的WPF控件,并将其放置在XAML文件中的StackPanel中。我最初创建了一个自定义的UserControl,并收到以下错误信息:

A value of type 'CustomControl' cannot be added to a collection or dictionary of type 'UIElementCollection'.

我尝试将我的自定义控件从UserControl更改为UIElement,但是我仍然收到这个消息。如何创建一个可以放置在StackPanel中的自定义控件?

3个回答

6

重新启动Visual Studio。XAML designer 是一个非常敏感的东西。


3
你是如何创建CustomControl的?确保它是从UserControl继承而来。
我刚刚创建了一个名为“TestProj”的新项目 - 在解决方案资源管理器中右键单击,选择添加=>用户控件,并将其命名为CustomControl。
我能够通过以下代码插入它:
<Window x:Class="TestProj.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:TestProj"
    Title="MainWindow" Height="350" Width="525">
<Grid>
    <StackPanel>
        <local:CustomControl/>
    </StackPanel>
</Grid>


0
如果您正在子类化另一个控件类,但您的.xaml.cs文件仍在子类化UserControl,则也可能会发生这种情况。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接