我怎样才能连接xaml和xaml.cs文件
我有一个VB投影,并使用在线转换工具将其转换为C#。 现在问题是xaml
和xaml.cs
文件不能相互连接,也就是说他们不能识别它们的依赖关系(图中的红色区域)。 实际上,它应该像Window1文件(图像中的绿色区域)。我怎样才能实现这一点。
我正在尝试使用WPF,所以可能是一个普通人的问题。
这很简单,尝试添加项目现有项目,并select格式列表中的XAML(而不是.cs等)文件。 在VS2010多数民众赞成在帮助。
如果你不能让IDE来做(Papa John的post),那么你可以通过编辑项目文件来完成。
该信息位于.csproj文件中(这是一个XML文件 – 您可以在文本编辑器中打开它,或右键单击它,select“卸载”,然后打开它 – select重新加载以加载它作为一个项目再次)。
这里是要查找的信息,你需要添加“DependentUpon”标签。
<Compile Include="TheFile.xaml.cs"> <DependentUpon>TheFile.xaml</DependentUpon> </Compile>
我碰到了一样的。 我find了出路 下面是如何获取嵌套在解决scheme资源pipe理器中.xaml下的.xaml.cs文件:
- 在Windows文件资源pipe理器(Visual Studio外部)中,打开所需文件所在的文件夹。
- 一起select两个文件(.xaml和.xaml.cs)。
- 将其拖到解决scheme资源pipe理器中的项目名称上。
- 完成! 🙂
使用Xamarin PCL解决scheme:
1)转到您的PCL文件夹并打开您的MySolution.csproj文件
2)应该有几个<ItemGroup>
标签组。 其中一个声明<EmbeddedResource>
标签,另一个标签将包含<Compile> <DependentUpon></DependentUpon></Compile>
标签组。
3)为了链接MyPage.xaml和MyPage.xaml.cs文件,你必须有一组xml声明你的xaml页面。
<EmbeddedResource Include="MyPage.xaml"> <Generator>MSBuild:UpdateDesignTimeXaml</Generator> <LogicalName>MyPage.xaml</LogicalName> </EmbeddedResource>
<Compile Include="MyPage.xaml.cs"> <DependentUpon>MyPage.xaml</DependentUpon> </Compile>
请注意,如果您的页面位于文件夹中,则应指定如下所示:
<Compile Include="Views\MyPage.xaml.cs"> <DependentUpon>MyPage.xaml</DependentUpon> </Compile>
<EmbeddedResource Include="Views\MyPage.xaml"> <Generator>MSBuild:UpdateDesignTimeXaml</Generator> <LogicalName>MyPage.xaml</LogicalName> </EmbeddedResource>
请注意,这适用于OSX和Windows
使用Xamarin共享代码解决scheme:
1)卸载共享项目后转到您的项目文件夹
2)findprojitems文件并编辑添加DependentUpon标签,如上面其他答案中所述。
3)保存文件
4)回到视觉工作室,你应该得到一个对话框,让你重新加载全部或再次打开项目。
基于Kyle White对官方Xamarin bug报告55591的评论:.NET解决scheme资源pipe理器中的.xaml文件出现两次 ,我在Oren Novotny
在您的.csproj文件中,添加以下<ItemGroup> :
<ItemGroup> <Compile Update="**\*.xaml.cs" DependentUpon="%(Filename)" /> <EmbeddedResource Include="**\*.xaml" SubType="Designer" Generator="MSBuild:UpdateDesignTimeXaml" LogicalName="%(Filename)%(Extension)" /> </ItemGroup>
之后,项目结构中的所有xaml
文件将自动显示在“解决scheme资源pipe理器”窗口中 – 即使您将添加新的xaml
文件。
这个魔法是如何工作的?
ItemGroup中的Compile元素使用通配符遍历所有目录,search.xaml.cs
文件并将其标记为依赖于同名的xaml
文件。 请注意,这仅适用于因为用于DependentUpon元素的%(Filename)
项目元数据包含最左边的文件扩展名,该扩展名按照惯例与xaml
文件的名称相匹配。 EmbeddedResource元素将包含项目的所有xaml
文件,以便在解决scheme资源pipe理器窗口中将其标记为Designer文件,并声明在Xamarin.Forms NuGet包中定义的UpdateDesignTimeXaml
目标应该用于从标记文件。