using ivf_tl_Entity; using ivf_tl_Entity.GlobalEntitys; using ivf_tl_Entity.GlobalEnums; using ivf_tl_Operate.Converts; using ivf_tl_Operate.CustomUserControls; using ivf_tl_Operate.ViewModel; using ivf_tl_Operate.Windows; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace ivf_tl_Operate.View { /// /// PhotoPageView.xaml 的交互逻辑 /// public partial class PhotoPageView : UserControl { private PhotoPageViewModel vm; public DetailPageViewModel parentVm; public List PhotoBoxes { get; set; } = new List(); //private List photoButtons = new List(); public int WellSn = 0; public PhotoPageView(DetailPageViewModel parentVm1, int wellSn) { InitializeComponent(); WellSn = wellSn; //this._well_textbolock.Text = $"well{wellSn}原图"; this._well_textbolock.Text = $"well{wellSn}{Environment.NewLine}{KeyToStringConvert.GetLanguageStringByKey("C0236")}"; parentVm = parentVm1; for (int i = 1; i < 17; i++) { PhotoBox photoBox = new PhotoBox(); photoBox.ID = i; photoBox.Tag = i; photoBox.Visibility = Visibility.Hidden; photoBox.MouseUp += PhotoBox_MouseUp; this.PhotoBoxes.Add(photoBox); _container.Children.Add(photoBox); } this._photoButton1.PhotoBoxSetting = new PhotoBoxSetting() { MinHour = 0, MaxHour = 24 * 60, MinHour1 = 16 * 60, MaxHour1 = 18 * 60, name = "0-24", name1 = "16-18" }; this._photoButton2.PhotoBoxSetting = new PhotoBoxSetting() { MinHour = 24 * 60, MaxHour = 48 * 60, MinHour1 = 26 * 60, MaxHour1 = 28 * 60, name = "24-48", name1 = "26-28" }; this._photoButton3.PhotoBoxSetting = new PhotoBoxSetting() { MinHour = 48 * 60, MaxHour = 72 * 60, MinHour1 = 36 * 60, MaxHour1 = 38 * 60, name = "48-72", name1 = "36-38" }; this._photoButton4.PhotoBoxSetting = new PhotoBoxSetting() { MinHour = 72 * 60, MaxHour = 96 * 60, MinHour1 = 46 * 60, MaxHour1 = 48 * 60, name = "72-96", name1 = "46-48" }; this._photoButton5.PhotoBoxSetting = new PhotoBoxSetting() { MinHour = 96 * 60, MaxHour = 120 * 60, MinHour1 = 56 * 60, MaxHour1 = 58 * 60, name = "96-120", name1 = "56-68" }; this._photoButton6.PhotoBoxSetting = new PhotoBoxSetting() { MinHour = 120 * 60, MaxHour = 144 * 60, MinHour1 = 66 * 60, MaxHour1 = 68 * 60, name = "120-144", name1 = "66-68" }; this._photoButton7.PhotoBoxSetting = new PhotoBoxSetting() { MinHour = 144 * 60, MaxHour = 0, MinHour1 = 76 * 60, MaxHour1 = 78 * 60, name = "144+", name1 = "76-78" }; var b11 = AppData.Instance.HttpHelper.GetTimeButtonsApi(); PhotoBoxSetting pho = null; List b = new List(); foreach (var item in b11) { if (item.type == "COMMON_BUTTON") { b = item.button.Take(7).OrderBy(x => x.minHour).ToList(); for (int i = 0; i < b.Count; i++) { var item1 = b[i]; switch (i) { case 0: pho = this._photoButton1.PhotoBoxSetting; if (pho == null) pho = new PhotoBoxSetting(); pho.MinHour = item1.minHour * 60; pho.MaxHour = item1.maxHour * 60; pho.name = item1.buttonName; break; case 1: pho = this._photoButton2.PhotoBoxSetting; if (pho == null) pho = new PhotoBoxSetting(); pho.MinHour = item1.minHour * 60; pho.MaxHour = item1.maxHour * 60; pho.name = item1.buttonName; break; case 2: pho = this._photoButton3.PhotoBoxSetting; if (pho == null) pho = new PhotoBoxSetting(); pho.MinHour = item1.minHour * 60; pho.MaxHour = item1.maxHour * 60; pho.name = item1.buttonName; break; case 3: pho = this._photoButton4.PhotoBoxSetting; if (pho == null) pho = new PhotoBoxSetting(); pho.MinHour = item1.minHour * 60; pho.MaxHour = item1.maxHour * 60; pho.name = item1.buttonName; break; case 4: pho = this._photoButton5.PhotoBoxSetting; if (pho == null) pho = new PhotoBoxSetting(); pho.MinHour = item1.minHour * 60; pho.MaxHour = item1.maxHour * 60; pho.name = item1.buttonName; break; case 5: pho = this._photoButton6.PhotoBoxSetting; if (pho == null) pho = new PhotoBoxSetting(); pho.MinHour = item1.minHour * 60; pho.MaxHour = item1.maxHour * 60; pho.name = item1.buttonName; break; case 6: pho = this._photoButton7.PhotoBoxSetting; if (pho == null) pho = new PhotoBoxSetting(); pho.MinHour = item1.minHour * 60; pho.MaxHour = item1.maxHour * 60; pho.name = item1.buttonName; break; } } } else if (item.type == "KEY_BUTTON") { b = item.button.Take(7).OrderBy(x => x.minHour).ToList(); for (int i = 0; i < b.Count; i++) { var item1 = b[i]; switch (i) { case 0: pho = this._photoButton1.PhotoBoxSetting; if (pho == null) pho = new PhotoBoxSetting(); pho.MinHour1 = item1.minHour * 60; pho.MaxHour1 = item1.maxHour * 60; pho.name1 = item1.buttonName; break; case 1: pho = this._photoButton2.PhotoBoxSetting; if (pho == null) pho = new PhotoBoxSetting(); pho.MinHour1 = item1.minHour * 60; pho.MaxHour1 = item1.maxHour * 60; pho.name1 = item1.buttonName; break; case 2: pho = this._photoButton3.PhotoBoxSetting; if (pho == null) pho = new PhotoBoxSetting(); pho.MinHour1 = item1.minHour * 60; pho.MaxHour1 = item1.maxHour * 60; pho.name1 = item1.buttonName; break; case 3: pho = this._photoButton4.PhotoBoxSetting; if (pho == null) pho = new PhotoBoxSetting(); pho.MinHour1 = item1.minHour * 60; pho.MaxHour1 = item1.maxHour * 60; pho.name1 = item1.buttonName; break; case 4: pho = this._photoButton5.PhotoBoxSetting; if (pho == null) pho = new PhotoBoxSetting(); pho.MinHour1 = item1.minHour * 60; pho.MaxHour1 = item1.maxHour * 60; pho.name1 = item1.buttonName; break; case 5: pho = this._photoButton6.PhotoBoxSetting; if (pho == null) pho = new PhotoBoxSetting(); pho.MinHour1 = item1.minHour * 60; pho.MaxHour1 = item1.maxHour * 60; pho.name1 = item1.buttonName; break; case 6: pho = this._photoButton7.PhotoBoxSetting; if (pho == null) { pho = new PhotoBoxSetting(); } pho.MinHour1 = item1.minHour * 60; pho.MaxHour1 = item1.maxHour * 60; pho.name1 = item1.buttonName; break; } } } } Loaded += (s, e) => { vm = this.DataContext as PhotoPageViewModel; if (vm == null) return; vm.PhotoButtonList.Add(_photoButton1); vm.PhotoButtonList.Add(_photoButton2); vm.PhotoButtonList.Add(_photoButton3); vm.PhotoButtonList.Add(_photoButton4); vm.PhotoButtonList.Add(_photoButton5); vm.PhotoButtonList.Add(_photoButton6); vm.PhotoButtonList.Add(_photoButton7); vm.PhotoToggle = false; InitializeToggle(false, false); //_box.Children.Clear(); //for (int i = vm.MinFocal; i <= vm.MaxFocal; i++) //{ // int k = i; // Border itembor = new Border(); // itembor.Width = 178; // itembor.Height = 80; // itembor.Margin = new Thickness(10); // itembor.BorderThickness = new Thickness(0, 0, 0, 1); // itembor.BorderBrush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#DDDEE0")); // itembor.Background = new SolidColorBrush(Colors.Transparent); // itembor.Tag = i; // itembor.VerticalAlignment = VerticalAlignment.Center; // itembor.HorizontalAlignment = HorizontalAlignment.Center; // TextBlock itemText = new TextBlock(); // itemText.FontSize = 44; // itemText.VerticalAlignment = VerticalAlignment.Center; // itemText.HorizontalAlignment = HorizontalAlignment.Center; // itemText.Text = i.ToString(); // itemText.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#3A5F91")); // itemText.TextAlignment = TextAlignment.Center; // //itemText.Background = new SolidColorBrush(Colors.LightBlue); // itembor.Child = itemText; // itembor.MouseUp += (s, e) => // { // _popupLiquid.IsOpen = false; // if (k.ToString() == this._picNum_TextBlock.Text) // { // return; // } // this._picNum_TextBlock.Text = k.ToString(); // vm.CurrentPicLayer = k; // vm.SetCurrentPicViewList(); // vm.SetShowPicViewList(); // //var temp = s as Border; // //string newpicnum = temp.Tag.ToString(); // //string oldpicnum = this._picNum_TextBlock.Text; // //if (newpicnum != oldpicnum) // //{ // // this._picNum_TextBlock.Text = temp.Tag.ToString(); // // // GetAllPhotos((int)temp.Tag); // //} // }; // _box.Children.Add(itembor); //} vm.SetShowPicViewList(); }; Unloaded += (s, e) => { this.Grid_Root.Children.Clear(); if (vm != null) vm = null; this.DataContext = null; }; } private void PhotoBox_MouseUp(object sender, MouseButtonEventArgs e) { if (AppData.Instance.MainWindow == null) return; if (!(sender is PhotoBox box)) return; if (vm == null) return; AppData.Instance.MainWindow.Mark(true); //PhotoWindow win = new PhotoWindow(uri); //win.ShowDialog(); new PhotoWindowNew(vm.ShowPicViewList, box.ID, vm.IsSourcePic).ShowDialog(); AppData.Instance.MainWindow.Mark(false); } private void InitializeToggle(bool photoToggle, bool isRefresh) { if (vm == null) return; bool b = false; if (isRefresh) { if (vm.PhotoButtonList.FirstOrDefault(x => x.IsSelected) != null) { b = true; } } foreach (var button in vm.PhotoButtonList) { button.IsSelected = false; if (photoToggle) { button.Content = button.PhotoBoxSetting.name1; } else { button.Content = button.PhotoBoxSetting.name; } } if (b) { vm.SetShowPicViewList(); } } private void Return_Click(object sender, RoutedEventArgs e) { DetailPageView detailPageView = new DetailPageView() { DataContext = parentVm, }; AppData.Instance.MainWindow.LoadPage(detailPageView); } private void Image_MouseUp_PhotoToggle(object sender, MouseButtonEventArgs e) { if (!(sender is PhotoToggle photoToggle)) return; vm.PhotoToggle = photoToggle.IsOpen; InitializeToggle(photoToggle.IsOpen, true); } private void CustomControlPagination_PageChangedEvent(int obj) { if (vm == null) return; foreach (var item in PhotoBoxes) { item.Visibility = Visibility.Hidden; } vm.PageIndex = obj; var list = vm.ShowPicViewList.Skip(vm.PageSize * (obj - 1)).Take(vm.PageSize).ToList(); for (int i = 0; i < list.Count; i++) { this.PhotoBoxes[i].ID = list[i].Num; if (vm.IsSourcePic) { this.PhotoBoxes[i].ImageSource = AppData.Instance.ConvertHelper.StringToBitmapImage($"{AppData.Instance.BaseUrl}{list[i].sourceImageUrl.Replace(AppData.Instance.PicSuf, $"_240x240{AppData.Instance.PicSuf}")}?token={AppData.Instance.HttpHelper.GetToken()}"); } else { this.PhotoBoxes[i].ImageSource = AppData.Instance.ConvertHelper.StringToBitmapImage($"{AppData.Instance.BaseUrl}{list[i].imageUrl.Replace(AppData.Instance.PicSuf, $"_240x240{AppData.Instance.PicSuf}")}?token={AppData.Instance.HttpHelper.GetToken()}"); } this.PhotoBoxes[i].peiYangShiChang = list[i].imageTime.ToString("MM-dd HH:mm"); this.PhotoBoxes[i].Visibility = Visibility.Visible; } } private void _BorderLiquid_MouseUp(object sender, MouseButtonEventArgs e) { //if (_popupLiquid.IsOpen) _popupLiquid.IsOpen = false; //else _popupLiquid.IsOpen = true; } private void TextBlock_MouseUp(object sender, MouseButtonEventArgs e) { if (vm == null) return; if (vm.IsSourcePic) { vm.IsSourcePic = false; //this._well_textbolock.Text = $"well{WellSn}原图"; this._well_textbolock.Text = $"well{WellSn}{Environment.NewLine}{KeyToStringConvert.GetLanguageStringByKey("C0236")}"; vm.SetCurrentPicViewList(); vm.SetShowPicViewList(); } else { vm.IsSourcePic = true; //this._well_textbolock.Text = $"well{WellSn}抠图"; this._well_textbolock.Text = $"well{WellSn}{Environment.NewLine}{KeyToStringConvert.GetLanguageStringByKey("C0236")}"; vm.SetCurrentPicViewList(); vm.SetShowPicViewList(); } } private void Image_MouseUp_Output(object sender, MouseButtonEventArgs e) { } private void ChangePicNum_MouseUp(object sender, MouseButtonEventArgs e) { } private void UserControl_Loaded(object sender, RoutedEventArgs e) { } private void PhotoButton_MouseUp(object sender, MouseButtonEventArgs e) { if (vm == null) return; if (!(sender is PhotoButton button)) return; button.IsSelected = !button.IsSelected; vm.SetShowPicViewList(); } private void BigFocus_Click(object sender, MouseButtonEventArgs e) { ChangeFocal(true); } private void SmallFocus_Click(object sender, MouseButtonEventArgs e) { ChangeFocal(false); } /// /// 切换图层 /// /// private void ChangeFocal(bool isMax) { try { if (vm == null) return; int newCurrentFocal = vm.CurrentPicLayer; if (isMax) newCurrentFocal++; else newCurrentFocal--; if (newCurrentFocal < vm.MaxFocal) { this._bigFocal_Button.IsEnabled = true; this._bigFocal_Button.Source = new BitmapImage(new Uri("/ivf_tl_Operate;component/Resources/Image/DetailBigFocusIcon.png", UriKind.Relative)); } else { this._bigFocal_Button.IsEnabled = false; this._bigFocal_Button.Source = new BitmapImage(new Uri("/ivf_tl_Operate;component/Resources/Image/DetailBigFocusEnableIcon.png", UriKind.Relative)); } if (newCurrentFocal > vm.MinFocal) { this._smallFocal_Button.IsEnabled = true; this._smallFocal_Button.Source = new BitmapImage(new Uri("/ivf_tl_Operate;component/Resources/Image/DetailSmallFocusIcon.png", UriKind.Relative)); } else { this._smallFocal_Button.IsEnabled = false; this._smallFocal_Button.Source = new BitmapImage(new Uri("/ivf_tl_Operate;component/Resources/Image/DetailSmallFocusEnableIcon.png", UriKind.Relative)); } if (newCurrentFocal < vm.MinFocal || newCurrentFocal > vm.MaxFocal) return; vm.CurrentPicLayer = newCurrentFocal; vm.SetCurrentPicViewList(); vm.SetShowPicViewList(); } catch (Exception ex) { AppData.Instance.LogHelper.TLLog($"PhotoPageView.{ChangeFocal}", LogEnum.RunException); } } } }