WPF/C#单击图像缩略图->;把那个形象放大

WPF/C#单击图像缩略图->;把那个形象放大,c#,wpf,data-binding,thumbnails,C#,Wpf,Data Binding,Thumbnails,我有来自照相机的图像(但现在假设它们在磁盘上)。 我想要这些作为缩略图列表: [thumb1] [thumb2] [thumb3] ... [thumb100] 单击缩略图时,我希望将该图像放在UI(同一窗口)上的大图像视图上。有点像 我是个笨蛋,不能按照这个答案去做:( 另外,plot twist:我还希望在我的相机上有一个“实时模式”,这意味着“大图像”UI元素也必须能够实时直接显示相机的图像(在“实时模式”期间没有缩略图) 这是我到目前为止得到的代码。我还需要添加什么 XML: 政务

我有来自照相机的图像(但现在假设它们在磁盘上)。 我想要这些作为缩略图列表:

[thumb1] [thumb2] [thumb3] ... [thumb100]
单击缩略图时,我希望将该图像放在UI(同一窗口)上的大图像视图上。有点像

我是个笨蛋,不能按照这个答案去做:(

另外,plot twist:我还希望在我的相机上有一个“实时模式”,这意味着“大图像”UI元素也必须能够实时直接显示相机的图像(在“实时模式”期间没有缩略图)

这是我到目前为止得到的代码。我还需要添加什么

XML:


政务司司长:

public分部类主窗口:窗口,INotifyPropertyChanged
{
//这是UI上的大图像
公共ImageSource BigImage{get;set;}
//这是一组缩略图。单击时,该图像应为
//“大形象”
公共ObservableCollection缩略图{get;set;}
公共主窗口()
{
初始化组件();
DataContext=this;
缩略图=新的ObservableCollection();
缩略图。添加(大图像);
添加(新的位图图像(新的Uri(@“C:\Raw0.bmp”));
添加(新的位图图像(新的Uri(@“C:\Raw1.bmp”));
添加(新的位图图像(新的Uri(@“C:\Raw2.bmp”));
NotifyPropertyChanged(“缩略图”);
}
公共事件属性更改事件处理程序属性更改;
受保护的void NotifyPropertyChanged(字符串名称)
{
PropertyChanged?.Invoke(这是新的PropertyChangedEventArgs(名称));
}
}

BigImage不是ImageSource的属性。图像控件的源需要绑定到datacontext本身。请使用点进行绑定

<Image Source="{Binding .}"/>

然后将ItemsControl的SelectedItem绑定到BigImage对象

<ListBox ItemsSource="{Binding Thumbnails}" SelectedItem="{Binding BigImage}" Height="100">

<Image Source="{Binding .}"/>
<ListBox ItemsSource="{Binding Thumbnails}" SelectedItem="{Binding BigImage}" Height="100">