2015-10-14 31 views
0

我有一個dll,我的遊戲名爲GameTools的通用工具。在那裏我也有一些圖片的文件夾,它們被設置爲嵌入式資源(我希望它們透明地攜帶dll)。這些圖像代表了骰子的兩面。並且應該將它們加載到公共列表中。事情是這樣的:WPF - 加載映像存儲在另一個DLL

public List<ImageSource> faceImages = new List<ImageSource>(); 
public void init() 
{ 
    //there is a known set of images, so I can load them one by one 
    faceImages.add(new BitmapImage(new Uri("/GameTools;component/Images/face1.png", UriKind.Relative));); 
    faceImages.add(new BitmapImage(new Uri("/GameTools;component/Images/face2.png", UriKind.Relative));); 
    ... 
} 

然後,我有一個WPF組件是骰子本身(名爲Dice),使用到GameTools參考。

dice我有一個圖像(img)和一個函數「滾動骰子」。應該看起來像這樣:

public void roll() 
{ 
    int face = random.Next(0,6); 
    img.Source = LOAD_THE_REFERENCE(face); 
} 

有沒有人如何編碼此LOAD_THE_REFERENCE?或者問題可能在於我將圖像「導入」到GameTools中。不確定的是,互聯網上的許多不同的解決方案目前並沒有真正幫助我。任何人都可以幫忙嗎?

回答

1

您應該將圖像文件的生成操作設置爲資源和全Resource File Pack URIs訪問它們:

var bitmap = new BitmapImage(
    new Uri("pack://application:,,,/GameTools;component/Images/face1.png")); 
+0

這是加載,或..從其他DLL訪問? – javirs

+0

'GameTools'是包含圖像資源的程序集的名稱。這些圖像可以通過一個應用程序加載,該應用程序通過pack URIs引用GameTools程序集。您當然也可以將加載代碼放在GameTools中某個類的方法中。 – Clemens

相關問題