我正在做的是当我选择一行并点击“显示”按钮时,我将有一个数据网格视图我想显示图像以及一些信息,我写了以下代码
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);
}
}
}
但是,如果我将我的图像复制并粘贴到Bin中,则同样无效。
所以我想知道关于这个 UriKInd
的一些事情答案 0 :(得分:12)
相对,而不是绝对。 “chicken / pot / pie.jpg”是相对的,因为它是当前目录的 relative 。而像“C:/images/food/chicken/pot/pie.jpg”这样的东西将是绝对,因为它......错误...相对于 root 驱动器。
以这种方式初始化Uri的唯一真正意义是当uri格式不正确时避免(或导致)异常;当Uri未预先确定时有用。
相对URI和绝对URI对其格式有不同的限制。例如,相对URI不需要方案或权限。您在
uriKind
中指定的值必须与uriString
中传递的URI类型相匹配。但是,如果指定了RelativeOrAbsolute,则URI字符串可以是相对的或绝对的。
答案 1 :(得分:10)
这意味着它是一个相对URI - 但如果没有您提供更多信息,我们不知道它的相对性。
例如,这里的URI是相对的:
<img src="person.jpg" />
...这样,虽然它在某种程度上比前一个“相对”更少,因为它只依赖于现有的主机/帖子/方案而不是当前URI的路径:
<img src="/images/person.jpg" />
这是绝对的 - 它包含所有所需的信息,没有任何其他背景:
<img src="http://microsoft.com/images/person.jpg" />
绝对URI的特点是对资源的完整引用(例如:http://www.contoso.com/index.html),而相对Uri依赖于先前定义的基URI(例如:/index.html)。
如果没有更多信息,很难说你遇到了什么问题。