C# 这种关系到底是什么意思
我正在做的是,当我选择一行并单击show按钮时,我将拥有一个datagridview,我希望显示图像以及一些信息,我编写了以下代码C# 这种关系到底是什么意思,c#,wpf,datagridview,C#,Wpf,Datagridview,我正在做的是,当我选择一行并单击show按钮时,我将拥有一个datagridview,我希望显示图像以及一些信息,我编写了以下代码 public partial class WpfWindow : Window { private UCPersons _ucPersons; public WpfWindow() { InitializeComponent(); // Create WinForms Usercontrol and
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);
}
}
}
公共部分类WpfWindow:Window
{
私人人士(ucu persons);;
公共WpfWindow()
{
初始化组件();
//创建WinForms用户控件和
//将其添加到WindowsFormsHost
_ucPersons=新ucPersons();
winFormHost.Child=\uUCPersons;
列表人员=CreateSamplePersons();
_ucPersons.SetData(persons);
}
私有列表CreateSamplePersons()
{
列表人员=新列表();
persons.Add(Person.Create(“Dorababu”、“Madhuranagar”、“Hyd”),
DateTime.Now.AddYears(-34),“1”);
persons.Add(Person.Create(“Krish”、“Sat”、“RJY”),
DateTime.Now.AddYears(-64),“2”);
返回人员;
}
私有void b显示详细信息\u单击(对象发送者、路由目标)
{
Person=\u ucPersons.GetSelectedPerson();
if(person!=null)
{
lblName.Content=person.Name;
lblAge.Content=person.birth.ToSortDateString();
Uri=新的Uri(“m_u”+person.ImageRef+”.jpg),
乌里金(亲属);
imgPerson.Source=BitmapFrame.Create(uri);
}
}
}
但如果我把我的图片复制粘贴到垃圾箱外,同样的方法就行不通了
所以我想知道一些关于乌里金的事情,相对的,相对于绝对的。“chicken/pot/pie.jpg”是相对的,因为它是相对于当前目录的。而像“C:/images/food/chicken/pot/pie.jpg”这样的东西是绝对的,因为它是。。。相对于驱动器的根目录 以这种方式初始化Uri的唯一真正意义是避免(或导致)Uri格式不正确时出现异常;当Uri不是预先确定的时有用 相对URI和绝对URI对其格式有不同的限制。例如,相对URI不需要方案或权限。在
uriKind
中指定的值必须与在uriString
中传递的URI类型匹配。但是,如果指定了,URI字符串可以是相对的或绝对的
这意味着它是一个相对URI——但如果您不提供更多信息,我们就不知道它是相对于什么的 例如,此处的URI是相对的:
<img src="person.jpg" />
。。。这也是如此,尽管它在某些方面比前一个“更少”相对,因为它只依赖于现有的host/post/scheme,而不是当前URI的路径:
<img src="/images/person.jpg" />
但这是绝对的-它包含所有必需的信息,没有任何其他上下文:
<img src="http://microsoft.com/images/person.jpg" />
从:
绝对Uri的特征是对资源的完整引用(示例:),而相对Uri依赖于先前定义的基本Uri(示例:/index.html)
如果没有更多的信息,很难说您遇到了什么问题。我们需要更多的上下文-您使用此Uri做什么?我正在使用Uri为确切的名称创建引用“确切的名称”是什么意思?听起来相对URI将被解析为相对于您的bin目录。。。如果您使用的是完全相同的代码,但图像不在bin目录中,您希望如何找到它?是的,它只在bin中,但如果是外侧bin,我如何使用该urikind获得它?您需要包括一个相对路径名,例如“./images/person.jpg”。但是,我不确定WPF是否允许您像那样跳出当前目录。您可能需要直接打开文件的流,然后将该流传递给BitmapFrame.Create。