2010-04-06 153 views
2

我在WPF中有两个项目,一个项目是主要项目,第二个项目仅用于测试(它使用主项目文件 - 文件通过项目 - >添加 - >现有项目... - >选定的文件 - >添加为链接,以便该文件只在主项目中)。如何指定WPF中不同项目的文件路径?

文件夹与项目有这些:

C:\Work\...\Projects\Main 
C:\Work\...\Projects\XXXTestProject 

其中XXX代表我分别测试了主要项目的不同部分。

我已经得到了代码:

<Window x:Class="Sokoban.Window1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="clr-namespace:Sokoban" 
    xmlns:diag="clr-namespace:System.Diagnostics;assembly=WindowsBase" 
    Title="Window1" Height="559" Width="419"> 
    <Window.Resources>   
     <ResourceDictionary> 
      <ResourceDictionary.MergedDictionaries> 
       <ResourceDictionary Source="GameDesk.xaml" /> 
      </ResourceDictionary.MergedDictionaries> 
     </ResourceDictionary> 
    </Window.Resources> 

    <Grid>   
     <Rectangle local:GameDeskProperties.FieldSize="30" Name="myrect" Style="{DynamicResource GameDesk}" MouseEnter="Rectangle_MouseEnter" /> 
    </Grid> 
</Window> 

...这应该使用XAML资源,从GameDesk.xaml这是主要的项目,似乎我不能使用包URI(http://msdn.microsoft.com/en-us/library/aa970069.aspx) 。我怎样才能指定文件?

  • 我应该使用绝对路径吗? (C:\ Work ... \ Main \ Resources \ GameDesk.xaml)

  • 或者还有其他方法吗?

谢谢你的帮忙!

+0

因此,您已将* GameDesk.xaml *作为链接文件添加到测试项目中? – 2010-04-06 18:47:22

+0

是的。测试项目的每个重要部分都应来自主项目。 – 2010-04-06 19:17:25

回答

2

MSDN link here

使用包:

包://应用:形式的// URI ,,,/ReferencedAssembly;组件/子文件夹/ ResourceFile.xaml

如果XAML在引用的组件

包:// siteoforigin:,,, /子文件夹/ SiteOfOriginFile.xaml

如果XAML松动并复制到bin文件夹。

+0

我想使用第一个选项,但我不认为它可以在我的情况下工作,因为我没有在一个解决方案下的这两个项目。两个项目都是分开的解决方案。它在我的场景中会如何?谢谢! – 2010-04-06 19:26:00

+0

不必在相同的解决方案中,只需添加对DLL的引用即可。 – 2010-04-06 19:49:56

+0

但是,如果它必须被编译(“引用到DLL”)比我不能在测试项目中更改(这实际上意味着在主项目中)。到目前为止,我已经在VS中设置了预生成事件,它复制所需的文件,这不是一个很好的解决方案,但它的工作原理和复制是通过相对路径完成的,因此它仍然是可移植的。 – 2010-04-06 20:20:06

相关问题