0
我有和使用silverlight 4程序集内的XmlnsDefinition属性的问题。XmlnsDefinitionAttribute与x:Name结合导致编译错误,代码生成
这里的测试用例:
在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>
望着那被生成的.gics文件,控制被声明为
internal SomeControl bar;
文件之一是缺少using语句或完整类型名称。我也在WPF中尝试过,结果是一样的。谁能告诉我什么,如果有的话,我做错了?