我有一个自定义控件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;没有复选框