我正在开发一个用于Windows Widget的Silverlight小工具。当我在小部件中添加另一个页面时,我发现了此错误。我在堆栈中发现了相同的问题,但不是针对小部件。
我的示例代码在这里xaml代码
<navigation:Page x:Class="SilverlightGadgetDocked.Test"
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"
xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
d:DesignWidth="359" d:DesignHeight="225"
Title="Test Page">
<Grid x:Name="LayoutRoot">
<Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="182,103,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
</Grid>
</navigation:Page>
和CS代码在这里,
public partial class Test:UserControl
{
public Test()
{
MessageBox.Show("af");
InitializeComponent();
}
// Executes when the user navigates to this page.
protected override void OnNavigatedTo(NavigationEventArgs e)
{
}
private void button1_Click(object sender, RoutedEventArgs e)
{
}
}
您的代码在指定的UserControl
的基类背后,但是您的XAML文件指定了Page
的基类(文档的根节点对应于该类型的基类)。
更改
public partial class Test:UserControl
to
public partial class Test
一切都会很好。值得注意的是,您实际上不必在部分类别的所有部分上指定基础类。由于基类是在XAML文件中设置的,因此无需在后面的代码中的类中再次指定它(但是,如果您这样做,则必须匹配XAML中指定的类型)。