Пример #1
0
        private void AddListItem(string[] fileNames, string method) // ListBox에 원소를 추가하는 메소드
        {
            int count = ImagesList.Items.Count + 1;

            foreach (var fileName in fileNames)
            {
                if (method == "drop")
                {
                    // 드래그 & 드랍을 통한 파일 업로드시 파일 확장자를 정규식으로 확인
                    if (!Regex.IsMatch(fileName, @"[^\s]+(\.(?i)(jpg|png|gif|bmp))$"))
                    {
                        MessageBox.Show($"{fileName}은\n이미지 파일이 아닙니다.", "ERROR", MessageBoxButton.OK, MessageBoxImage.Error);
                        continue;
                    }
                }
                // 이미지 컨트롤 인스턴스 생성 후 Listbox에 추가
                ImageControl imc = new ImageControl();

                imc.fileName.Text = Path.GetFileName(fileName);
                imc.index.Content = count++;
                imc.uri.Source    = ImageOrientation.SetBitmapSource(fileName);
                imc.OriginalUrl   = fileName;

                ImagesList.Items.Add(imc);

                // UI 블락을 방지하여 업로드중인 상황임을 사용자에게 알리기 위한 Dispatcheer
                Dispatcher.Invoke(DispatcherPriority.Render, EmptyDelegate);
            }
        }
Пример #2
0
        private void ImagesList_SelectionChanged(object sender, SelectionChangedEventArgs e)    // ListBox에서 이미지 선택 변경 이벤트 핸들러
        {
            if (ImagesList.SelectedItem == null)
            {
                return;
            }

            // 선택된 ListBox 요소를 ImageControl로 형변환 후 selectedImage 이미지 변경
            ImageControl seleted = (ImageControl)ImagesList.SelectedItem;

            selectedImage.Source = ImageOrientation.SetBitmapSource(seleted.OriginalUrl);

            selectedImgPath = selectedImage.Source.ToString().Replace("file:///", "");
        }