void ZoomIn(int x, int y) { zoomCanvas = new KEAPCanvas(); zoomCanvas.Width = AudienceCanvas.Width; zoomCanvas.Height = AudienceCanvas.Height; zoomCanvas.Background = null; Rectangle rec_BG = new Rectangle() { Width = SystemParameters.WorkArea.Width, Height = SystemParameters.PrimaryScreenHeight, Stroke = null, Fill = AudienceCanvas.Background }; Canvas.SetLeft(rec_BG, -(SystemParameters.WorkArea.Width * x / 8)); //* (120 / 96) Canvas.SetTop(rec_BG, -(WindowSettings.resolution_Height * y / 8)); //* (120 / 96) zoomCanvas.Children.Add(rec_BG); UIElement[] copyuiele = new UIElement[AudienceCanvas.Children.Count]; AudienceCanvas.Children.CopyTo(copyuiele, 0); foreach (UIElement ele in copyuiele) { if (ele is EditableTextBlock) { EditableTextBlock copyele = ele as EditableTextBlock; EditableTextBlock textblock = new EditableTextBlock() { Text = copyele.Text, Width = copyele.Width, Height = copyele.Height, FontSize = copyele.FontSize, TextAlignment = copyele.TextAlignment, Effect = copyele.Effect, FontWeight = copyele.FontWeight, FontFamily = copyele.FontFamily, Background = copyele.Background, Foreground = copyele.Foreground, TextDecorations = copyele.TextDecorations }; Canvas.SetLeft(textblock,Canvas.GetLeft(copyele)); Canvas.SetTop(textblock,Canvas.GetTop(copyele)); double x1 = Canvas.GetLeft(ele), y1 = Canvas.GetTop(ele); Canvas.SetLeft(textblock, x1 - (SystemParameters.PrimaryScreenWidth * x / 8)); Canvas.SetTop(textblock, y1 - (SystemParameters.PrimaryScreenHeight * y / 8)); zoomCanvas.Children.Add(textblock); } else if (ele is Polygon) { Polygon copyele = ele as Polygon; Polygon polygon = new Polygon() { Points = copyele.Points, Stroke = copyele.Stroke, StrokeThickness = copyele.StrokeThickness, Fill = copyele.Fill }; Point[] copy_points = new Point[polygon.Points.Count]; PointCollection copy_collection = new PointCollection(); polygon.Points.CopyTo(copy_points, 0); for (int i = 0; i < polygon.Points.Count; i++) { copy_points[i].X = copy_points[i].X - (SystemParameters.WorkArea.Width * x / 8); copy_points[i].Y = copy_points[i].Y - (SystemParameters.PrimaryScreenHeight * y / 8); copy_collection.Add(copy_points[i]); } polygon.Points = copy_collection; zoomCanvas.Children.Add(polygon); } else if (ele is Line) { Line copyele = ele as Line; Line line = new Line() { X1 = copyele.X1, Y1 = copyele.Y1, X2 = copyele.X2, Y2 = copyele.Y2, Stroke = copyele.Stroke, StrokeThickness = copyele.StrokeThickness, }; line.X1 = ((Line)ele).X1 - (SystemParameters.WorkArea.Width * x / 8); line.Y1 = ((Line)ele).Y1 - (SystemParameters.PrimaryScreenHeight * y / 8); line.X2 = ((Line)ele).X2 - (SystemParameters.WorkArea.Width * y / 8); line.Y2 = ((Line)ele).Y2 - (SystemParameters.PrimaryScreenHeight * y / 8); zoomCanvas.Children.Add(line); } else if (ele is Image) { Image copyele = ele as Image; Image image = new Image() { Source = copyele.Source, Width = copyele.Width, Height = copyele.Height, }; Canvas.SetLeft(image, Canvas.GetLeft(copyele)); Canvas.SetTop(image, Canvas.GetTop(copyele)); double x1 = Canvas.GetLeft(ele), y1 = Canvas.GetTop(ele); Canvas.SetLeft(image, x1 - (SystemParameters.WorkArea.Width * x / 8)); Canvas.SetTop(image, y1 - (SystemParameters.PrimaryScreenHeight * y / 8)); zoomCanvas.Children.Add(image); } else if (ele is Rectangle) { Rectangle copyele = ele as Rectangle; Rectangle rectangle = new Rectangle() { Width = copyele.Width, Height = copyele.Height, Fill = copyele.Fill, Stroke = copyele.Stroke, StrokeThickness = copyele.StrokeThickness }; Canvas.SetLeft(rectangle, Canvas.GetLeft(copyele)); Canvas.SetTop(rectangle, Canvas.GetTop(copyele)); double x1 = Canvas.GetLeft(ele), y1 = Canvas.GetTop(ele); Canvas.SetLeft(rectangle, x1 - (SystemParameters.WorkArea.Width * x / 8)); Canvas.SetTop(rectangle, y1 - (SystemParameters.PrimaryScreenHeight * y / 8)); zoomCanvas.Children.Add(rectangle); } else if (ele is Ellipse) { Ellipse copyele = ele as Ellipse; Ellipse ellipse = new Ellipse() { Width = copyele.Width, Height = copyele.Height, Fill = copyele.Fill, Stroke = copyele.Stroke, StrokeThickness = copyele.StrokeThickness }; Canvas.SetLeft(ellipse, Canvas.GetLeft(copyele)); Canvas.SetTop(ellipse, Canvas.GetTop(copyele)); double x1 = Canvas.GetLeft(ele), y1 = Canvas.GetTop(ele); Canvas.SetLeft(ellipse, x1 - (SystemParameters.WorkArea.Width * x / 8)); Canvas.SetTop(ellipse, y1 - (SystemParameters.PrimaryScreenHeight * y / 8)); zoomCanvas.Children.Add(ellipse); } } AudienceGrid.Background = null; zoomCanvas.UpdateLayout(); zoom_img = new Image(); FrameworkElement TargetVisual = zoomCanvas as FrameworkElement; int width, height; TargetVisual.Arrange(new Rect(0, 0, 0, 0)); width = (int)TargetVisual.ActualWidth; height = (int)TargetVisual.ActualHeight; if(TargetVisual.RenderTransform!=null) { Rect bounds = new Rect(0, 0, TargetVisual.ActualWidth, TargetVisual.ActualHeight); bounds = TargetVisual.RenderTransform.TransformBounds(bounds); TargetVisual.Arrange(new Rect(-bounds.Left, -bounds.Top, width, height)); width = (int)bounds.Width; height = (int)bounds.Height; } //RenderTargetBitmap zoom_rtb = new RenderTargetBitmap(width/4 + 402, height/4 + 237, 96d, 96d, System.Windows.Media.PixelFormats.Default); //RenderTargetBitmap zoom_rtb = new RenderTargetBitmap(width/4, height/4, 96d, 96d, System.Windows.Media.PixelFormats.Default); RenderTargetBitmap zoom_rtb = new RenderTargetBitmap(((width/4)+402), ((height/4)+237), 96d, 96d, System.Windows.Media.PixelFormats.Default); AudienceGrid.Children.Insert(0, zoomCanvas); AudienceGrid.Children.Remove(AudienceCanvas); zoomCanvas.UpdateLayout(); AudienceGrid.UpdateLayout(); zoom_rtb.Render(TargetVisual); zoom_img.Source = zoom_rtb; zoom_img.HorizontalAlignment = HorizontalAlignment.Stretch; zoom_img.VerticalAlignment = VerticalAlignment.Stretch; zoom_img.Stretch = Stretch.Fill; //AudienceGrid.Children.Remove(AudienceCanvas); zoom_img.Width = SystemParameters.WorkArea.Width; zoom_img.Height = SystemParameters.MaximizedPrimaryScreenHeight; AudienceGrid.Children.Add(zoom_img); AudienceGrid.Children.Remove(zoomCanvas); //AudienceGrid.Background = new ImageBrush(zoom_img.Source); //AudienceGrid.Background = new SolidColorBrush(Colors.Blue); }
private void Audience_Loaded(object sender, RoutedEventArgs e) { this.WindowState = System.Windows.WindowState.Maximized; Keyboard.Focus(this); AudienceCanvas = new KEAPCanvas() { VerticalAlignment = System.Windows.VerticalAlignment.Stretch, HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch, Background = new SolidColorBrush(Colors.White) }; AudienceCanvas.Width = SystemParameters.WorkArea.Width;// * (100 / 96); AudienceCanvas.Height = SystemParameters.MaximizedPrimaryScreenHeight;// *(100 / 96); AudienceCanvas = canvas_arr[0]; AudienceCanvas.PreviewMouseLeftButtonDown += AudienceCanvas_PreviewMouseLeftButtonDown; AudienceCanvas.PreviewMouseRightButtonDown += AudienceCanvas_PreviewMouseRightButtonDown; AudienceGrid.Children.Add(AudienceCanvas); List<Dictionary<int, string>> anilist; if(animations.Keys.Contains(canvas_index)) anilist = animations[canvas_index]; else anilist = null; if (anilist != null) { foreach (Dictionary<int, string> dic in anilist) { animation_indexes.Add(dic.Keys.First()); } } }
void Slide_Turn(int p_Slide_Index) { if((canvas_index+p_Slide_Index)<0 || (canvas_index+p_Slide_Index)>=canvas_arr.Count) return; canvas_index+=p_Slide_Index; if (!(canvas_arr.Count > canvas_index)) return; AudienceCanvas.PreviewMouseLeftButtonDown -= AudienceCanvas_PreviewMouseLeftButtonDown; AudienceCanvas.PreviewMouseRightButtonDown -= AudienceCanvas_PreviewMouseRightButtonDown; AudienceGrid.Children.Remove(AudienceCanvas); AudienceCanvas = new KEAPCanvas() { VerticalAlignment = System.Windows.VerticalAlignment.Stretch, HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch, Background = new SolidColorBrush(Colors.White) }; AudienceCanvas.Width = SystemParameters.WorkArea.Width * (100 / 96); AudienceCanvas.Height = SystemParameters.MaximizedPrimaryScreenHeight * (100 / 96); AudienceCanvas = canvas_arr[canvas_index]; AudienceCanvas.PreviewMouseLeftButtonDown += AudienceCanvas_PreviewMouseLeftButtonDown; AudienceCanvas.PreviewMouseRightButtonDown += AudienceCanvas_PreviewMouseRightButtonDown; AudienceGrid.Children.Add(AudienceCanvas); List<Dictionary<int, string>> anilist; if (canvas_index < animations.Count) anilist = animations[canvas_index]; else anilist = null; if (anilist != null) { animation_indexes.Clear(); foreach (Dictionary<int, string> dic in anilist) { animation_indexes.Add(dic.Keys.First()); } } animation_index = 0; }
public void DefaultCall() { if (DefaultPageNum == -1) return; if (!toggle) { AudienceGrid.Children.Remove(AudienceCanvas); container = canvas_arr.IndexOf(AudienceCanvas); AudienceCanvas = canvas_arr[DefaultPageNum]; AudienceGrid.Children.Add(AudienceCanvas); toggle = true; } else { AudienceGrid.Children.Remove(AudienceCanvas); AudienceCanvas=canvas_arr[container]; AudienceGrid.Children.Add(AudienceCanvas); toggle = false; } }