Silverlight:从UserControl的子类创建对象失败

时间:2014-12-03 18:58:49

标签: c# wpf xaml inheritance

我有一个自定义控件CustomStackPanel,它是包含CheckBox的StackPanel的子类。 XAML是

<StackPanel x:Class="MyApp.CustomStackPanel"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400" Orientation="Horizontal">
    <CheckBox IsChecked="True">check me</CheckBox>
</StackPanel>

并且后面的代码没有做太多的事情:

namespace MyApp
{
    public partial class CustomStackPanel: StackPanel
    {
        public CustomStackPanel()
        {
            InitializeComponent(); // added by Visual Studio
        }
    }
}

我可以通过XAML将CustomStackPanel添加到MainPage中,如

<local:CustomStackPanel />

并在运行程序时出现CheckBox。相反,如果我尝试动态创建一个面板并将其添加到容器中,CheckBox不会出现在屏幕上。

旧代码:

...
StackPanel sp = new StackPanel();
sp.Add(new CheckBox());
somewhere.Add(sp);
...

- &GT;我看到一个复选框

新代码:

...
somewhere.Add(new CustomStackPanel());
...

- &GT;没有复选框

0 个答案:

没有答案