【发布时间】:2011-03-21 20:44:49
【问题描述】:
我在 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 中尝试过,结果是一样的。谁能告诉我我做错了什么?
【问题讨论】:
标签: xaml silverlight-4.0