Создайте индивидуальный путь к файлу (wpf) - PullRequest
1 голос
/ 17 марта 2011

Цель:
Я хочу получить адрес пути в виде строки приложения, созданного в Visual Studio 2010. Путь от единицы (единицы измерения c или d) к имени приложения.

Проблема:
Я не могу создать настраиваемый адрес пути во время выполнения.Я не хочу указывать полный путь от единицы до имени картинки.

- Нет по этому пути "D: \ work \ Modul3 \ Assignment3 \ Assignment3 \ bin \ Debug \ logotyp_vp_final.jpg "

- Да, запрошенный путь" D: \ work \ 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);
        }




    }
}

Ответы [ 2 ]

1 голос
/ 17 марта 2011

Чтобы получить путь, из которого выполняется приложение:

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

edit Похоже, вы пытаетесь получить доступ к изображениям за пределами вашего проекта.Поскольку это может работать в вашей среде песочницы, лучше включить изображения как часть вашего проекта и получить к ним доступ как к встроенному ресурсу.

Вот хорошее прочтение, чтобы вы начали: Добавлениеи редактирование ресурсов (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 голосов
/ 17 марта 2011

Примерно так должно работать:

var fullPath = System.IO.Path.GetFullPath("..\\..\\logotyp_vp_final.jpg"); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...