2011-10-19 77 views
4

我試圖創建一個自定義的WPF控件,並將其放置在我的XAML文件中的StackPanel之內。我原來做了一個自定義的UserControl,並得到了以下錯誤消息:在StackPanel中放置自定義WPF控件

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

我試圖改變從UserControl我的自定義控件一個UIElement,但我仍然得到這個消息。如何製作一個自定義控件,我可以將它放在StackPanel之內?

回答

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> 

+1

現在它工作。設計師撒謊。 –

6

重新啓動Visual Studio。 XAML設計師是一位臭名昭着的敏感野獸。

0

如果您繼承另一個控件類,也會發生這種情況,但是.xaml.cs文件仍然繼承UserControl的子類。