/* * 清空控件中的图片 */ private void removeBtnClick(object sender, RoutedEventArgs e) { Button removeBtn = (Button)sender; Canvas bg = (Canvas)VisualTreeHelper.GetParent(removeBtn); Canvas imgCanvas = (Canvas)VisualTreeHelper.GetParent(bg); object tag = imgCanvas.Tag; if (tag == null) { return; } TurnPictureImagesDto dto = (TurnPictureImagesDto)tag; dto.url = ""; dto.storageImageId = 0; imgCanvas.Tag = dto; Button imgBtn = (Button)FrameworkElementUtil.getByName(imgCanvas, "imgBtn"); imgBtn.Background = new ImageBrush { ImageSource = FileUtil.readImage(AppDomain.CurrentDomain.BaseDirectory + defaultBg) , Stretch = Stretch.Uniform }; }
public void RaiseEvent(TurnPictureImagesDto dto, double width, double height, System.Windows.Point point) { if (TurnPictureItemEvent != null) { TurnPictureItemEvent(dto, width, height, point, currDControl.pageId); } }
/* * 3.3插入层叠相册 */ public void insertMarqueLayerToPage(DControl ctl) { List <TurnPictureImagesDto> list = turnPictureImagesBll.getByDControlId(ctl.id); for (int i = 0; i < list.Count; i++) { TurnPictureImagesDto dto = list[i]; if (dto == null) { list.Remove(dto); } string imgNotExists = Params.ImageNotExists; if (i < 6 && dto.storageImageId == 0) { imgNotExists = Params.TurnPictureNotExists[i]; } string imgFullPath = FileUtil.notExistsShowDefault(dto.url, imgNotExists); dto.url = imgFullPath; } MarqueLayer marqueLayer = NewControlUtil.newMarqueLayer(ctl, list, false); loadAllAnimation(marqueLayer, ctl); mainContainer.Children.Add(marqueLayer); marqueLayer.MarqueLayerItemEvent += new MarqueLayerItemHandler(TurnPictureItemFun); }
public EditMarqueWindow(Editing editing, FrameworkElement currElement) { InitializeComponent(); WindowStartupLocation = WindowStartupLocation.CenterScreen; // string imgs = "/myfile/upload/image/20200403/9a5d403792444230ac7aa853e34f3333/1-1Z521142300c1.jpg,/myfile/upload/image/20200403/d3964390c52641b0a35b34d6de6ec10a/1.png,/myfile/upload/image/20200403/9b2d0d40469d47fea6d3cc761f842b9f/2.png"; //TurnPicture turnPicture = (TurnPicture) currentEle; this.editing = editing; this.currElement = currElement; currDControl = (DControl)currElement.Tag; List <TurnPictureImagesDto> list = turnPictureImagesBll.getByDControlId(currDControl.id); for (int i = 0; i < list.Count; i++) { TurnPictureImagesDto dto = list[i]; if (dto == null) { list.Remove(dto); } string imgNotExists = Params.ImageNotExists; if (i < 6 && dto.storageImageId == 0) { imgNotExists = Params.TurnPictureNotExists[i]; } string imgFullPath = FileUtil.notExistsShowDefault(dto.url, imgNotExists); dto.url = imgFullPath; } init(list); }
public void RaiseEvent(TurnPictureImagesDto dto, double width, double height, Point point) { if (MarqueItemEvent != null) { MarqueItemEvent(dto, width, height, point, currDControl.pageId); } }
/* * 保存数据 */ private void Submit_Button_Click(object sender, RoutedEventArgs e) { //过滤掉空图片 List <TurnPictureImagesDto> list = new List <TurnPictureImagesDto>(); foreach (Canvas imgCanvas in imgList.Children) { object tag = imgCanvas.Tag; if (tag == null) { continue; } TurnPictureImagesDto dto = (TurnPictureImagesDto)tag; if (dto.storageImageId == 0 && dto.url == "") { turnPictureImagesBll.delete(dto.id); continue; } list.Add(dto); } //更新到数据库 turnPictureImagesBll.updateByDControlId(currDControl, list); //更新页面控件信息 Marque marque = (Marque)currElement; marque.updateElement(currDControl, true, list); Close(); }
/* * 3.3插入层叠相册 */ public void insertMarqueLayerToPage(DControl ctl) { List <TurnPictureImagesDto> list = turnPictureImagesBll.getByDControlId(ctl.id); //如果storageImageId=0,则显示替代的Params.TurnPictureNotExists[i] for (int i = 0; i < list.Count; i++) { TurnPictureImagesDto dto = list[i]; if (dto == null) { list.Remove(dto); } string imgNotExists = Params.ImageNotExists; if (i < 6 && dto.storageImageId == 0) { imgNotExists = Params.TurnPictureNotExists[i]; } string imgFullPath = FileUtil.notExistsShowDefault(dto.url, imgNotExists); dto.url = imgFullPath; } MarqueLayer marqueLayer = NewControlUtil.newMarqueLayer(ctl, list, true); System.Windows.Style myStyle = (System.Windows.Style)pageTemplate.container.FindResource("DefaultMarqueLayerStyle"); marqueLayer.Style = myStyle; marqueLayer.PreviewMouseLeftButtonDown += control_MouseDown; marqueLayer.PreviewMouseMove += control_MouseMove; marqueLayer.PreviewMouseLeftButtonUp += control_MouseUp; //控件上右击显示菜单 marqueLayer.MouseRightButtonUp += control_MouseRightButtonUp; pageTemplate.container.Children.Add(marqueLayer); }
/* * 图片链接到 */ private void linkBtnClick(object sender, RoutedEventArgs e) { Button linkBtn = (Button)sender; Canvas bg = (Canvas)VisualTreeHelper.GetParent(linkBtn); Canvas imgCanvas = (Canvas)VisualTreeHelper.GetParent(bg); TurnPictureImagesDto dto = (TurnPictureImagesDto)imgCanvas.Tag; EditTurnPictureLinkToWindow win = new EditTurnPictureLinkToWindow(linkBtn, dto); win.ShowDialog(); }
/* * 如果moveX>20,则进入下一个;如果 0<moveX<=20,回到原来位置 * 如果moveX<-20,则进入上一个 * 如果到达最后一个,则回到起始位置 */ private void listbox_PreviewMouseUp(object sender, MouseEventArgs e) { if (!isMoving) { TurnPictureImagesDto dto = list[turnImageWhich]; // if (dto.linkToPageId <= 0) return; System.Windows.Point point = new System.Windows.Point(); point.X = currDControl.left; point.Y = currDControl.top; RaiseEvent(dto, currDControl.width, currDControl.height, point); } ListBox listbox1 = (ListBox)sender; ScrollViewer sv = FindVisualChild <ScrollViewer>(listbox1); double ox = 40; double width = listbox1.Width; int count = listbox1.Items.Count; int n = (int)Math.Floor(offsetLeft / width); if (moveX > 0) { if (moveX > ox) { n = n + 1; if (n >= count) { n = count; } } } else if (moveX < 0) { if (moveX < -ox) { n = n - 1; if (n < 0) { n = 0; } } } // textbox1.Text = "当前第几个:" + n; Set_ListBoxItem_ActiveAsync(listbox1, n); isMouseDown = false; listbox1.ReleaseMouseCapture(); e.Handled = true; }
public EditTurnPictureLinkToWindow(Button linkBtn, TurnPictureImagesDto dto) { InitializeComponent(); WindowStartupLocation = WindowStartupLocation.CenterScreen; this.linkBtn = linkBtn; this.currDControl = dControlBll.get(dto.dControlId); this.dto = dto; this.loadPageData(); Submit_Button.Click += Submit_Button_Click; }
public static MarqueItemTag convert(TurnPictureImagesDto dto) { MarqueItemTag tag = new MarqueItemTag(); tag.id = dto.id; tag.dControlId = dto.dControlId; tag.storageImageId = dto.storageImageId; tag.isLink = dto.isLink; tag.url = dto.url; return(tag); }
/* * 显示当前图片 */ private void initCurrImage(Button buttonImage, TurnPictureImagesDto dto) { string imgPath = (dto == null ? Params.ImageNotExists : dto.url); string imgFullPath = FileUtil.notExistsShowDefault(imgPath, Params.ImageNotExists); imgFullPath = AppDomain.CurrentDomain.BaseDirectory + imgFullPath; buttonImage.Background = new ImageBrush { ImageSource = FileUtil.readImage2(imgFullPath, 200) , Stretch = Stretch.Uniform }; }
/* * 6 右击-插入层叠相册 */ public void insertMarqueLayerClick(object sender, RoutedEventArgs e) { DControl dControl = new DControl(); dControl.pageId = App.localStorage.currPageId; ///////// dControl.name = "MarqueLayer"; dControl.content = ""; dControl.width = 1260; dControl.height = 450; dControl.left = (int)rightClickLocation.X; ///////// dControl.top = (int)rightClickLocation.Y; ///////// dControl.type = "MarqueLayer"; // dControl.url = "";////////// // dControl.imgs = "/myfile/sysimg/TurnPicture/1.jpg,/myfile/sysimg/TurnPicture/2.jpg,/myfile/sysimg/TurnPicture/3.jpg,/myfile/sysimg/TurnPicture/4.jpg,/myfile/sysimg/TurnPicture/5.jpg"; dControl.idx = 1;//////// dControl.autoplay = true; dControl.loop = true; dControl.turnPictureSpeed = 6000; //流动速度 dControl.rowNum = 5; //一行显示几个 dControl.spacing = 20; //两图间距 dControl.isShowTurnPictureArrow = true; //1、复制文件 //String url = this.uploadImage(text); //2、插入文件库 //StorageImage storageImage = storageImageBll.insert(text, url); //3、插入控件库 // dControl.url = url; dControl = dControlBll.insert(dControl); //插入相册图片列表 List <TurnPictureImagesDto> list = new List <TurnPictureImagesDto>(); TurnPictureImagesDto dto = new TurnPictureImagesDto(); dto.dControlId = dControl.id; dto.storageImageId = 0; list.Add(dto); list.Add(dto); list.Add(dto); list.Add(dto); list.Add(dto); list.Add(dto); int rows = turnPictureImagesBll.insert(list); //4、插入页面 insertMarqueLayerToPage(dControl); }
private void marque_stackPanel_PreviewTouchUp(object sender, TouchEventArgs e) { isMouseDown = false; if (!isMoving && currItem != null) { TurnPictureImagesDto dto = (TurnPictureImagesDto)currItem.Tag; GeneralTransform generalTransform1 = currItem.TransformToAncestor(this); Point point = generalTransform1.Transform(new Point(currDControl.left, currDControl.top)); RaiseEvent(dto, currItem.Width, currItem.Height, point); } turnImage_Timer.Start(); marque_scrollViewer.ReleaseTouchCapture(e.TouchDevice); e.Handled = true; }
/* * 3.1 委托事件处理程序,链接到 * * 相册、层叠相册、流动相册 * */ public void TurnPictureItemFun(TurnPictureImagesDto dto, double width, double height, Point point, int pageId) { if (dto == null) { return; } //当前主控件 相册 层叠相册 流动相册 DControl mainDControl = dControlBll.get(dto.dControlId); if (mainDControl == null) { return; } DControlDto dControlDto = new DControlDto(); dControlDto.id = dto.id; dControlDto.width = Convert.ToInt32(width); dControlDto.height = Convert.ToInt32(height); dControlDto.left = Convert.ToInt32(point.X); dControlDto.top = Convert.ToInt32(point.Y); dControlDto.pageId = pageId; this.DifferentScreenDifferentLinkTo(dControlDto, dto.id); if (mainDControl.isClickShow) { int frameWidth = App.localStorage.cfg.screenWidth; int frameHeight = App.localStorage.cfg.screenHeight; if (dPage.width > 0) { frameWidth = dPage.width; } if (dPage.height > 0) { frameHeight = dPage.height; } Cfg cfg = new Cfg(); cfg.screenWidth = frameWidth; cfg.screenHeight = frameHeight; ShowBigImageUtil.showBigImage(dto.url, dControlDto, mainContainer, cfg); } }
private void marque_scrollViewer_PreviewMouseUp(object sender, MouseButtonEventArgs e) { if (isSupportTouch) { return; } isMouseDown = false; if (!isMoving && currItem != null) { TurnPictureImagesDto dto = (TurnPictureImagesDto)currItem.Tag; GeneralTransform generalTransform1 = currItem.TransformToAncestor(this); Point point = generalTransform1.Transform(new Point(currDControl.left, currDControl.top)); RaiseEvent(dto, currItem.Width, currItem.Height, point); } turnImage_Timer.Start(); marque_scrollViewer.ReleaseMouseCapture(); }
/* * 初始化一个图片控件 */ private Canvas initOneImage(TurnPictureImagesDto dto) { Canvas imgCanvas = new Canvas(); imgCanvas.Name = "imgCanvas"; imgCanvas.Width = 140; imgCanvas.Height = 140; imgCanvas.Margin = new Thickness(4, 10, 4, 10); imgCanvas.Tag = dto; //1.按钮 string imgPath = (dto == null ? App.localStorage.icoAddImage : dto.url); string imgFullPath = FileUtil.notExistsShowDefault(imgPath, Params.ImageNotExists); imgFullPath = AppDomain.CurrentDomain.BaseDirectory + imgFullPath; Button btn = new Button(); btn.Name = "imgBtn"; btn.Width = 140; btn.Height = 140; btn.Background = new ImageBrush { ImageSource = FileUtil.readImage2(imgFullPath, 200) , Stretch = Stretch.Uniform }; btn.Click += openDialogClick; //2.按钮行 Canvas bg = new Canvas(); bg.Name = "bg"; bg.Background = Brushes.Black; bg.Width = 140; bg.Height = 24; bg.Opacity = 0.6; bg.SetValue(Canvas.BottomProperty, 0.0); bg.SetValue(Canvas.LeftProperty, 0.0); bg.Visibility = Visibility.Visible; if (dto == null) { bg.Visibility = Visibility.Collapsed; } Button lbtn = new Button(); lbtn.Width = 20; lbtn.Height = 20; lbtn.BorderThickness = new Thickness(0); lbtn.Background = new ImageBrush { ImageSource = FileUtil.readImage(AppDomain.CurrentDomain.BaseDirectory + "/myfile/sysimg/ico-index-left.png") , Stretch = Stretch.Uniform }; lbtn.SetValue(Canvas.LeftProperty, 0.0); lbtn.SetValue(Canvas.TopProperty, 2.0); bg.Children.Add(lbtn); lbtn.Click += lbtnClick; Button rbtn = new Button(); rbtn.Width = 20; rbtn.Height = 20; rbtn.BorderThickness = new Thickness(0); rbtn.Background = new ImageBrush { ImageSource = FileUtil.readImage(AppDomain.CurrentDomain.BaseDirectory + "/myfile/sysimg/ico-index-right.png") , Stretch = Stretch.Uniform }; rbtn.SetValue(Canvas.RightProperty, 0.0); rbtn.SetValue(Canvas.TopProperty, 2.0); bg.Children.Add(rbtn); rbtn.Click += rbtnClick; Button removeBtn = new Button(); removeBtn.Width = 20; removeBtn.Height = 20; removeBtn.BorderThickness = new Thickness(0); removeBtn.Background = new ImageBrush { ImageSource = FileUtil.readImage(AppDomain.CurrentDomain.BaseDirectory + "/myfile/sysimg/ico-image-remove.png") , Stretch = Stretch.Uniform }; removeBtn.SetValue(Canvas.LeftProperty, 40.0); removeBtn.SetValue(Canvas.TopProperty, 2.0); bg.Children.Add(removeBtn); removeBtn.Click += removeBtnClick; Button linkBtn = new Button(); linkBtn.Width = 20; linkBtn.Height = 20; linkBtn.BorderThickness = new Thickness(0); if (dto != null) { if (dto.isLink) { linkBtn.Background = new ImageBrush { ImageSource = FileUtil.readImage(AppDomain.CurrentDomain.BaseDirectory + "/myfile/sysimg/ico-image-link-active.png") , Stretch = Stretch.Uniform }; } else { linkBtn.Background = new ImageBrush { ImageSource = FileUtil.readImage(AppDomain.CurrentDomain.BaseDirectory + "/myfile/sysimg/ico-image-link.png") , Stretch = Stretch.Uniform }; } } linkBtn.SetValue(Canvas.LeftProperty, 80.0); linkBtn.SetValue(Canvas.TopProperty, 2.0); bg.Children.Add(linkBtn); linkBtn.Click += linkBtnClick; imgCanvas.Children.Add(btn); imgCanvas.Children.Add(bg); //if (!string.IsNullOrWhiteSpace(img)) { // bg.Visibility = Visibility.Hidden; //} return(imgCanvas); }
/* * 填充轮播图中的图片,设置宽度,并绑定点按钮事件 */ private void fillImage(DControl ctl, List <TurnPictureImagesDto> list) { marque_scrollViewer.Width = ctl.width; if (list == null || list.Count == 0) { //return; } System.Windows.Style itemStyle = (System.Windows.Style)FindResource("ListBoxItemStyle1"); System.Windows.Style turnPicturePageButtonStyle = (System.Windows.Style)FindResource("TurnPicturePageButtonStyle"); int i = 0; foreach (TurnPictureImagesDto dto in list) { i = i + 1; Button item = new Button(); item.Name = "item" + i; item.Width = itemWidth; item.Height = ctl.height; item.BorderThickness = new Thickness(0); item.AllowDrop = true; // item.Style = itemStyle; item.Background = System.Windows.Media.Brushes.Transparent; FileUtil.readImage2Button(item, AppDomain.CurrentDomain.BaseDirectory + dto.url, ctl.width / 3, Stretch.Fill); if (i > 1) { item.Margin = new Thickness(ctl.spacing, 0, 0, 0); } item.Tag = dto; item.PreviewMouseDown += item_Click; item.PreviewTouchDown += item_Click; marque_stackPanel.Children.Add(item); ////添加point Button btn = new Button(); btn.Width = 8; btn.Height = 8; btn.Margin = new Thickness(3, 0, 3, 0); btn.Padding = new Thickness(0); btn.BorderThickness = new Thickness(0); btn.Style = turnPicturePageButtonStyle; pagePanel.Children.Add(btn); } if (list.Count > ctl.rowNum) { for (int a = 0; a < ctl.rowNum; a++) { TurnPictureImagesDto dto = list[a]; Button item = new Button(); item.Name = "itema" + a; item.Width = itemWidth; item.Height = ctl.height; item.BorderThickness = new Thickness(0); item.AllowDrop = true; // item.Style = itemStyle; item.Background = System.Windows.Media.Brushes.Transparent; FileUtil.readImage2Button(item, AppDomain.CurrentDomain.BaseDirectory + dto.url, ctl.width / 3, Stretch.Fill); item.Margin = new Thickness(ctl.spacing, 0, 0, 0); item.Tag = dto; item.PreviewMouseDown += item_Click; item.PreviewTouchDown += item_Click; marque_stackPanel.Children.Add(item); } } }
/* * 点击打开上传图片 */ private void openDialogClick(object sender, RoutedEventArgs e) { Button btn = (Button)sender; Canvas imgCanvas = (Canvas)VisualTreeHelper.GetParent(btn); int idx = imgList.Children.IndexOf(imgCanvas); object tag = imgCanvas.Tag; System.Windows.Forms.OpenFileDialog ofld = new System.Windows.Forms.OpenFileDialog(); ofld.Filter = "图片|*.jpg;*.jpeg;*.png;*.gif;*.bmp"; ofld.Multiselect = true; if (ofld.ShowDialog() == System.Windows.Forms.DialogResult.OK) { int i = 0; string[] fileNames = ofld.FileNames; foreach (string filename in fileNames) { if (filename != "" || filename != null) { i = i + 1; System.Drawing.Image sourceImage = System.Drawing.Image.FromFile(filename); String url = uploadImage(btn, filename); StorageImage storageImage = storageImageBll.insert(filename, url, sourceImage.Width, sourceImage.Height, 1); //1.如果i>1,则直接在其后插入新的 if (i > 1) { TurnPictureImagesDto dto = new TurnPictureImagesDto(); dto.storageImageId = storageImage.id; dto.dControlId = currDControl.id; dto.url = storageImage.url; TurnPictureImages turnPictureImages = turnPictureImagesBll.insert(dto); dto.id = turnPictureImages.id; Canvas canvas = initOneImage(dto); imgList.Children.Insert(idx, canvas); idx = idx + 1; continue; } //2.如果Tag==null,则在其前面插入新的, if (tag == null) { TurnPictureImagesDto dto = new TurnPictureImagesDto(); dto.storageImageId = storageImage.id; dto.dControlId = currDControl.id; dto.url = storageImage.url; TurnPictureImages turnPictureImages = turnPictureImagesBll.insert(dto); dto.id = turnPictureImages.id; Canvas canvas = initOneImage(dto); imgList.Children.Insert(idx, canvas); idx = idx + 1; } //3.直接tag!=null,则更新当前图片 else { TurnPictureImagesDto dto = (TurnPictureImagesDto)tag; dto.storageImageId = storageImage.id; dto.dControlId = currDControl.id; dto.url = storageImage.url; imgCanvas.Tag = dto; turnPictureImagesBll.update(dto); btn.Background = new ImageBrush { ImageSource = FileUtil.readImage2(AppDomain.CurrentDomain.BaseDirectory + url, currDControl.width) , Stretch = Stretch.Uniform }; } } } } }