将自定义WPF控件放在StackPanel中

时间:2011-10-19 15:29:03

标签: wpf xaml

我正在尝试创建自定义WPF控件并将其放在我的XAML文件中的StackPanel内。我最初制作了自定义UserControl并收到以下错误消息:

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

我尝试将自定义控件从UserControl更改为UIElement,但我仍然收到此消息。如何制作可以放在StackPanel内的自定义控件?

3 个答案:

答案 0 :(得分:6)

重新启动Visual Studio。 XAML设计师是一个臭名昭着的敏感野兽。

答案 1 :(得分:3)

您是如何创建CustomControl的?确保它继承自UserControl。

我刚创建了一个名为“TestProj”的新项目 - 右键单击​​解决方案资源管理器Add => UserControl并将其命名为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>

答案 2 :(得分:0)

如果你继承了另一个控件类,但你的.xaml.cs文件仍在继承UserControl,也会发生这种情况。