将.xaml和.xaml.vb文件移动到新的Silverlight项目会破坏xaml编译

时间:2008-12-24 14:20:29

标签: silverlight xaml

当我将.xaml和.xaml.vb文件移动到新的Silverlight项目时,生成的.g文件不再包含xaml文件中定义的x:Name属性的成员。这意味着代码隐藏文件无法引用这些成员而无法构建。

3 个答案:

答案 0 :(得分:4)

在Visual Studio中,选择.xaml文件,然后在属性中将文件的Build Action设置为Page。您不需要手动修改项目文件。

答案 1 :(得分:1)

我想我已经回答了我自己的问题。如果使用Visual Studio解决方案资源管理器将用户控件从一个项目复制并粘贴到另一个项目,它会将该用户控件放入vbproj文件(不确定csproj)作为ApplicationDefinition而不是Page。例如,将vbproj中的xml更改为每个usercontrol的结果如下:

<Page Include="calculator.xaml">
    <Generator>MSBuild:MarkupCompilePass1</Generator>
    <SubType>Page</SubType>
</Page>

...解决了这个问题。

这是一个工具巫术让我感到不安,但至少文件是透明的,所以你可以弄清楚并修改它们。

这似乎是Visual Studio中的一个错误。

答案 2 :(得分:-1)

即使不这样做,也请尝试:

  1. 手动删除您手动从资源管理器添加的文件。您宁愿使用VS来添加它。
  2. 右键单击该项目,然后单击Add-&gt; Existing Item。
  3. VS将完成同步代码隐藏和XAML的其余工作。
  4. 巴拉斯