2013-02-18 37 views
9

Tôi đang viết một ứng dụng win8 và sẽ sử dụng hệ thống quản lý tài nguyên được tích hợp sẵn: reswx:Uid thẻ trong mã XAML của tôi.Nội dung tài nguyên: sử dụng x: Uid tham chiếu đến tài nguyên của một assembly khác

Vì vậy, tôi tạo ra chúng ta hãy nói một TextBox như thế:

<TextBlock Style="{StaticResource HeaderTextStyle}" x:Uid="ResourceTest"/> 

tôi tạo ra các tập tin tài nguyên tương ứng trong lắp ráp của tôi với một mục ResourceTest.Text và nó hoạt động tốt: văn bản thích hợp sẽ được hiển thị khi chạy.

Bây giờ, tôi muốn chuyển tất cả các tệp resx của mình sang Thư viện C# khác để bảo trì. Vì vậy, tôi đặt các tập tin tài nguyên trong một dự án hoàn toàn mới và tham khảo hội đồng mới này từ hội đồng chính.

Nhưng điều này làm cho cấu trúc trước đó bị lỗi (không hiển thị văn bản).

Tuy nhiên, nếu tôi lập trình lấy lại giá trị tài nguyên sử dụng đoạn mã sau từ bên trong lắp ráp bên (gọi là ResourcesLibrary), tôi nhận được chuỗi một cách chính xác:

static ResourceLoader resourceLoader = null; 
public static string GetString(string resourceName) 
{ 
    if (resourceLoader == null) 
     resourceLoader = new ResourceLoader ("ResourcesLibrary/Resources"); 
    return resourceLoader.GetString (resourceName); 
} 

Làm thế nào để kích hoạt các cơ chế x:Uid khi giao dịch với các tài nguyên ngoài lắp ráp?

Tôi đã thử một vài điều trong số x:Uid chẳng hạn như ResourcesLibrary/Resources/ResourceTest nhưng không có may mắn.

+0

Bạn đã tìm thấy giải pháp từ khi đặt câu hỏi chưa? Tôi đang đối mặt với cùng một vấn đề ngay bây giờ. –

+0

không, tôi đã quay trở lại sử dụng cùng một hội đồng, không có thời gian để điều tra. – Mic

+2

Trên thực tế, chúng tôi đã kết thúc bằng cách sử dụng công cụ này để tạo mã-đằng sau lớp học để gửi lại tài nguyên tập tin, hoạt động như một sự quyến rũ ngay cả khi resw trong một hội đồng khác: http://reswcodegen.codeplex.com/ –

Trả lời

10

Tôi đã có cùng một vấn đề trong một thời gian dài. Nhưng sau khi thử nghiệm một chút, tôi đã giải quyết nó bằng cách viết toàn bộ Đường dẫn của Tài nguyên trong Bộ luật XAML.

Something như thế này:

<TextBlock x:Uid="/ResourcesLibrary/Resources/ResourceTest" /> 

Đáng tiếc là câu trả lời này đến rất muộn, nhưng có thể nó có thể giúp người khác.

+1

Cảm ơn bạn đã trở lại và gửi bài điều này. –

0

Theo hiểu biết của tôi, bạn không thể sử dụng x: Uid nếu tài nguyên được duy trì trong tệp .resx.

nếu bạn sử dụng .resw file bạn có thể truy cập vào bất cứ điều gì chuỗi lắp ráp họ đang cư trú tại.

họ có thể được truy cập như bạn đề cập trong câu hỏi của bạn như thế này "ResourcesLibrary/Resources/ResourceTest"

Các vấn đề liên quan