Что именно подразумевается под этим Urikind.relative - PullRequest
8 голосов
/ 09 марта 2011

Что я делаю, так это то, что у меня будет сетка данных, когда я выберу строку и нажму кнопку «Показать», я хотел бы отобразить изображение вместе с некоторой информацией для этого, я написал следующий код

public partial class WpfWindow : Window
{
    private UCPersons _ucPersons;

    public WpfWindow()
    {
        InitializeComponent();

        // Create WinForms Usercontrol and 
        // add it to the WindowsFormsHost
        _ucPersons = new UCPersons();
        winFormHost.Child = _ucPersons;

        List<Person> persons = CreateSamplePersons();
        _ucPersons.SetData(persons);


    }

    private List<Person> CreateSamplePersons()
    {
        List<Person> persons = new List<Person>();
        persons.Add(Person.Create("Dorababu", "Madhuranagar", "Hyd", 
            DateTime.Now.AddYears(-34), "1"));

        persons.Add(Person.Create("Krish", "Sat", "RJY",
            DateTime.Now.AddYears(-64), "2"));


        return persons;
    }

    private void btnDisplayDetails_Click(object sender, RoutedEventArgs e)
    {
        Person person = _ucPersons.GetSelectedPerson();
        if (person != null)
        {
            lblName.Content = person.Name;
            lblAge.Content = person.BirthDay.ToShortDateString();
            Uri uri = new Uri( "m_" + person.ImageRef + ".jpg", 
                UriKind.Relative);
            imgPerson.Source = BitmapFrame.Create(uri);
        }
    }
}

Но то же самое не работает, если я копирую и вставляю свои изображения из корзины.

Так что я хотел бы узнать кое-что об этом UriKInd

Ответы [ 2 ]

12 голосов
/ 09 марта 2011

Относительно, в отличие от Абсолюта."chicken / pot / pie.jpg" будет относительным, поскольку относительно относительно текущего каталога.В то время как что-то вроде «C: /images/food/chicken/pot/pie.jpg» будет абсолютным , потому что оно ... ошибочно ... относительно корневого диска.

Единственная реальная точка для инициализации Uri таким способом - избегать (или вызывать) исключения, когда Uri не правильно сформирован;полезно, когда Uri не предопределен.

Ссылка MSDN

Относительные и абсолютные URI имеют разные ограничения по формату.Например, относительный URI не требует схемы или полномочий.Значение, указанное в uriKind, должно соответствовать типу URI, переданного в uriString.Однако, если указано RelativeOrAbsolute , строка URI может быть относительной или абсолютной.

10 голосов
/ 09 марта 2011

Это означает, что это относительный URI - но мы не знаем, к чему это относится, если вы не предоставите дополнительную информацию.

Например, URI здесь является относительным:

<img src="person.jpg" />

... и это так, хотя в некотором смысле это «менее» относительно предыдущего, поскольку оно опирается только на существующий хост / пост / схему, а не на текущий путь URI:

<img src="/images/person.jpg" />

Хотя это абсолютно - он содержит всю необходимую информацию, без какого-либо другого контекста:

<img src="http://microsoft.com/images/person.jpg" />

Из UriKind документации :

Абсолютные URI характеризуются полной ссылкой на ресурс (пример: http://www.contoso.com/index.html),, тогда как относительный URI зависит от предварительно определенного базового URI (пример: /index.html).

Трудно сказать, какая у вас проблема, без дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...