2012-08-31 4 views
2

내가 동적 이미지와 자원 디렉토리를로드하기 위해 이러한 방법을 사용하고 작동하지 않습니다,하지만 그들은상대 URI 경로가 제대로

new Uri(@"pack://application:,,/Images/lession_tab.png"); 

이 방법은 이미지 작업이 donot 모든 경우에 작동하지 않습니다하지만 리소스 파일에 대한 작업 .

new Uri("/project;component/Resources/Dictionary1.xaml", UriKind.Relative); 

이 방법은 자원 디렉토리에 대해 작동하지만 이미지에는 적용됩니다.

내가 제대로 팩이 무엇입니까 경우 : 이것은 자원 '이미지/lession_tab.png'를 찾을 수 없습니다 제외 을주고있다 이미지
작동하지 않는 이유를 다음 로컬 assesmbly 경로를 얻을 // 응용 프로그램
작업을.

답변

2

IIRC, 기본적으로있다가 없습니다 "리소스로" "내용으로"프로젝트에 추가 이미지, 저는 아니에요 이 URI 구문을 사용하여 "content"를 참조 할 수 있는지 확인하십시오. 그들은 buildaction을 가지고 있습니까? 자원 또는 내용? 콘텐츠라면 '/blah/image.png'와 같은 일반 URL 만 사용해야한다고 생각합니다. 그들은 몇 곳에서이 이상한 원문이 있지만 ..

또 다른 일을 http://msdn.microsoft.com/en-us/library/aa970069.aspx를 확인하면 해당 팩/응용 프로그램 세 쉼표를을 가지고 있습니다 : 같은 pack://application:,,,/ContentFile.xaml하지 두! 각각의 ','는 빈 하위 로케이터를 의미하므로 위치 의미가 변경됨에 따라 3으로 시도했는지 확인하십시오 ..

1

Build Action = Resource 및 Copy to OutputDirectory = 첫 번째 경우는 복사하지 마십시오.

은 또한 당신은 "자원"항목을로드하기 위해 다음 코드를 사용할 수 있습니다

public static class UriHelper 
{ 
    /// <summary> 
    /// Gets absulute URI for provided relative path 
    /// </summary> 
    /// <param name="baseType">Base type for ussage as URI root</param> 
    /// <param name="relativePath">Relative path</param> 
    /// <returns>Absolute Uri</returns> 
    public static Uri GetUri(Type baseType, string relativePath) 
    { 
     Assembly oAssembly = Assembly.GetAssembly(baseType); 
     AssemblyName oName = oAssembly.GetName(); 
     return new Uri( 
       String.Format(
        "pack://application:,,,/{0};v{1};component/{2}", 
        oName.Name, 
        oName.Version.ToString(), 
        relativePath), 
       UriKind.Absolute); 
    } 
} 
+0

thnx를 코드로 살펴볼 것입니다. – Buzz

관련 문제