我遇到了使用Silverlight 4程序集中的XmlnsDefinition属性的问题。
以下是测试用例:
在silverlight项目的AssemblyInfo.cs中,我添加了以下内容:
[assembly: XmlnsDefinition("urn:foo", "SilverlightApplication1")]
[assembly: XmlnsDefinition("urn:foo", "SilverlightApplication1.SomeNamespace")]
我编辑MainPage.xaml.cs并使它看起来像这样:
namespace SilverlightApplication1
{
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
}
}
}
namespace SilverlightApplication1.SomeNamespace
{
public class SomeControl : ContentControl
{
}
}
现在在MainPage.xaml中我有以下内容:
<UserControl x:Class="SilverlightApplication1.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:foo="urn:foo">
<Grid>
<foo:SomeControl>
<TextBlock Text="Hello World"/>
</foo:SomeControl>
</Grid>
</UserControl>
这编译并运行正常。将x:Name属性添加到SomeControl标记时会出现问题。
这不编译:
<foo:SomeControl x:Name="bar">
<TextBlock Text="Hello World"/>
</foo:SomeControl>
查看生成的.g.i.cs文件,控件被声明为
internal SomeControl bar;
该文件缺少using语句或完整类型名称。我也在WPF中试过这个,结果是一样的。谁能告诉我什么,如果有的话,我做错了?
答案 0 :(得分:0)