2011-03-17 3 views
1

목표 :
Visual Studio 2010에서 만든 응용 프로그램의 경로로 주소를 입력하고 싶습니다. 경로는 단위 (c 또는 d 단위)에서 이름 응용 프로그램.사용자 지정 경로 주소 만들기 (wpf)

문제점 :
런타임에 사용자 정의 경로 주소를 작성할 수 없습니다. 나는 단위에서 그림의 이름까지있는 전체 경로 주소를 원하지 않습니다. 이 경로 주소 에

--no "D : \ 작업 \ Modul3 \ Assignment3 \ Assignment3 \ 빈 \ 디버그 \의 logotyp_vp_final.jpg"

- 네, 요청 경로 "D : \ 작업 \ Modul3 \ Assignment3 "

이 신청서와 신청서의 이름 및 주소는 수시로 변경 될 수 있습니다.

namespace Assignment3 
{ 
    /// <summary> 
    /// Interaction logic for FlightForm.xaml 
    /// </summary> 
    public partial class FlightForm : Window 
    { 

     public delegate void TakeOffHandler(object source, TakeOffEventArgs e); 
     public delegate void ChangeHandler(object source, ChangeRouteEventArgs e); 

     public event TakeOffHandler TakeOffEvent; 
     public event ChangeHandler ChangeEvent; 


     public FlightForm() 
     { 
      InitializeComponent(); 

      Title = "Flight "; 

      cmbStatus.Visibility = Visibility.Hidden; 
      btnLand.Visibility = Visibility.Hidden; 

      string fullPath; 
      fullPath = System.IO.Path.GetFullPath("logotyp_vp_final.jpg"); 

      BitmapImage image = new BitmapImage(); 

      image.BeginInit(); 
      image.UriSource = new Uri(fullPath); 
      image.EndInit(); 

      image1.Source = image; 

      System.Windows.Shapes.Path path = new System.Windows.Shapes.Path(); 




     } 



     private void btnStart_Click(object sender, RoutedEventArgs e) 
     { 

      cmbStatus.Visibility = Visibility.Visible; 
      btnLand.Visibility = Visibility.Visible; 
      btnStart.Visibility = Visibility.Hidden; 

      TakeOffEvent(this, new TakeOffEventArgs("a", "b", DateTime.Now.ToString())); 
      ChangeEvent(this, new ChangeRouteEventArgs("aa", "bb", "cc")); 


     } 




    } 
} 
이 같은
namespace Assignment3 
{ 
    /// <summary> 
    /// Interaction logic for MainWindow.xaml 
    /// </summary> 
    public partial class ControlTower : Window 
    { 
     public ControlTower() 
     { 
      InitializeComponent(); 
     } 

     private FlightForm myFlightForm; 


     private void btnSendNextAirplane_Click(object sender, RoutedEventArgs e) 
     { 
      myFlightForm = new FlightForm(); 

      myFlightForm.TakeOffEvent += new FlightForm.TakeOffHandler(PrintOutTakeOff); 
      myFlightForm.ChangeEvent += new FlightForm.ChangeHandler(PrintOutChange); 
      myFlightForm.Show(); 

     } 




     public void PrintOutTakeOff(object source, TakeOffEventArgs e) 
     { 

      lstDisplay.Items.Add(new { FlightCode = e.FlightCode, Status = e.Status, Time = e.Time }); 





     } 


     public void PrintOutChange(object source, ChangeRouteEventArgs e) 
     { 
      string test = e.FlightCode + e.Status + e.Time; 

      MessageBox.Show(test); 
     } 




    } 
} 

답변

1

는 응용 프로그램에서 실행되는 위치의 경로를 얻으려면 :

string localPath = new Uri(Assembly.GetExecutingAssembly().CodeBase).LocalPath; 
string currentDirectory = Path.GetDirectoryName(localPath); 

편집
프로젝트 외부의 이미지에 액세스하려고하는 것 같습니다. 이 기능이 샌드 박스 환경에서 작동 할 수 있으므로 더 나은 방법은 이미지를 프로젝트의 일부로 포함시키고 포함 된 리소스로 액세스하는 것입니다. 임베디드 리소스로 이미지를 추가 Adding and Editing Resources (Visual C#)

워크를 통해

가의 라인을 따라, 프로젝트에 일반적으로 어떤 파일을 추가합니다 :

여기 시작하는 좋은 읽기입니다

그런 다음
+solution 
    +project 
    +Resources <-- this is Visual Studio's default folder name for resources 
     +SomeDirectory 
     -logotyp_vp_final.jpg 

:

  1. 프로젝트 속성으로 이동
  2. 왼쪽의 자원 탭을 클릭하십시오.
  3. 상단 탐색 막대에서 images 자원을 선택하십시오.
  4. 자원 추가> 기존 파일 추가를 선택하십시오. 프로젝트에 넣은 파일을 찾아서 추가하십시오.

파일은 이제 프로젝트 속성의 리소스 탭 아래에 표시됩니다. 더 의미있는 리소스 탭에서 파일 이름을 변경하십시오.파일이 프로젝트의 포함 리소스, 당신은 코드에 따라 액세스 할 수 있는지 이제

:

var MyFile = Properties.Resources.logotyp_vp_final 
+0

나는이 결과를 얻을 : 로컬 경로 = "D : \\ 일 \\ Modul3을 \\ 할당 3 \\ 할당 3 \\ bin \\ 디버그 \\ 할당 3 .EXE " currentDirectory ="D : \\ 작업 \\ 모듈 3 \\ 할당 3 \\ 할당 3 \ bin \ \ 디버그 " 표준입니까? "bin \\ Debug"주소를 검색 하시겠습니까? 요청한 주소는 "D : \\ Work \\ Modul3 \\ Assignment3"입니다. –

+0

예제의 이미지 경로 인'logotyp_vp_final.jpg'에 접근하려는 경우 이미지는 프로젝트의 일부 여야하며 다른 곳에 있지 않아야합니다. 이미지를 프로젝트의 일부로 포함 시키면 이미지에 액세스 할 수있는 몇 가지 옵션, 즉 임베디드 리소스 또는 출력 디렉토리로 복사 만 할 수 있습니다. 그리고 예, 결과는 응용 프로그램이 실행되는 위치이기 때문에 기대 한 결과입니다. –

0

뭔가 작업을해야합니다 :

var fullPath = System.IO.Path.GetFullPath("..\\..\\logotyp_vp_final.jpg"); 
관련 문제