public void UseSpringsNoAnimations () { MultiScaleImage msi = new MultiScaleImage (); msi.UseSprings = false; msi.ViewportWidth = 2.0; Assert.AreEqual (2.0, msi.ViewportWidth, "OriginalWidth"); msi.ViewportWidth = .2; Assert.AreEqual (.2, msi.ViewportWidth, "FinalWidth"); }
public void ChangeUseSprings () { MultiScaleImage msi = new MultiScaleImage (); msi.UseSprings = true; msi.ViewportWidth = 1.0; Assert.AreEqual (1.0, msi.ViewportWidth, "OriginalWidth"); msi.ViewportWidth = .1; msi.UseSprings = false; Assert.AreEqual (.1, msi.ViewportWidth, "FinalWidth"); }
/// <summary> /// A Raster Tile Layer for the map /// </summary> /// <param name="map">Instance of the map in which to create the layer</param> public TileLayer(Map map) { _Map = map; _Msi = new MultiScaleImage(); Children.Add(_Msi); _Msi.Loaded += _Msi_Loaded; _Msi.LayoutUpdated += (o, e) => CheckViewBounds(); _Msi.MotionFinished += (o, e) => _Map.Events.ZoomEnded(_Map, new MapEventArgs()); _LastViewWidth = _Msi.ViewportWidth; _Msi.ViewportChanged += _Msi_ViewportChanged; Overlays = new ObservableCollection<ITileSource>(); //This null TileSource allows the MSI to size itself correctly and earlier _Msi.Source = new TileSource(map); }
public MainPage(string encodedVideo) { InitializeComponent(); byte[] videoDescriptor = Convert.FromBase64String(encodedVideo); string xml = Encoding.UTF8.GetString(videoDescriptor, 0, videoDescriptor.Length); XmlSerializer serializer = new XmlSerializer(typeof(TimelapseVideo)); using (StringReader reader = new StringReader(xml)) { this.Video = (TimelapseVideo)serializer.Deserialize(reader); } this.ImageFrames = new List<MultiScaleImage>(10) { null, null, null, null, null, null, null, null, null, null}; for (var i = 9; i >= 0; i--) { MultiScaleImage image = new MultiScaleImage(); image.Width = 800; image.Height = 600; image.Source = new DeepZoomImageTileSource(new Uri(this.Video.Frames.ElementAt<TimelapseFrame>(i).Url, UriKind.Absolute)); image.Opacity = 0; if (i == 0) { image.ImageOpenSucceeded += ImageOpened; } this.ImageFrames.Insert(i, image); ImageCanvas.Children.Add(image); } this.ImageFrames.ElementAt(0).Opacity = 1; /* ThreadStart loader = delegate() { foreach (TimelapseFrame frame in this.Video.Frames) { Dispatcher.BeginInvoke(new Action(() => this.Image.Source = new DeepZoomImageTileSource(new Uri(frame.Url, UriKind.Absolute)))); Thread.Sleep(1000); } }; new Thread(loader).Start(); */ }
public void SetSize(double x, double y, double w, double h) { System.Windows.Controls.MultiScaleImage msifade = new System.Windows.Controls.MultiScaleImage(); msifade.Source = _source; msifade.Loaded += new RoutedEventHandler(msi_Loaded); this.Children.Add(msifade); // _zoomfactor = ((w > h ? w : h) / 7); this.Width = w; this.Height = h; this.TransformHelper.Translate = new Point(x, y); // msifade.Width = w; msifade.Height = h; msifade.MinWidth = w; msifade.MinHeight = h; msifade.UseLayoutRounding = true; msifade.UseSprings = true; }
public void InitializeComponent() { if (_contentLoaded) { return; } _contentLoaded = true; System.Windows.Application.LoadComponent(this, new System.Uri("/DeepZoomMarked;component/DeepZPoints.xaml", System.UriKind.Relative)); this.hider = ((System.Windows.Media.Animation.Storyboard)(this.FindName("hider"))); this.LayoutRoot = ((System.Windows.Controls.Grid)(this.FindName("LayoutRoot"))); this.image = ((System.Windows.Controls.MultiScaleImage)(this.FindName("image"))); this.marksPositions = ((System.Windows.Controls.Canvas)(this.FindName("marksPositions"))); this.transform = ((System.Windows.Media.CompositeTransform)(this.FindName("transform"))); this.newMark = ((System.Windows.Controls.StackPanel)(this.FindName("newMark"))); this.newMarkAreaType = ((System.Windows.Controls.ComboBox)(this.FindName("newMarkAreaType"))); this.fullscreen = ((System.Windows.Controls.Button)(this.FindName("fullscreen"))); this.debugInfo = ((System.Windows.Controls.TextBlock)(this.FindName("debugInfo"))); this.pagesPanelView = ((System.Windows.Controls.Grid)(this.FindName("pagesPanelView"))); this.pagesPanelHider = ((System.Windows.Controls.TextBlock)(this.FindName("pagesPanelHider"))); this.pagesPanel = ((System.Windows.Controls.StackPanel)(this.FindName("pagesPanel"))); this.marksPanel = ((System.Windows.Controls.TreeView)(this.FindName("marksPanel"))); }
public MultiScaleImageAutomationPeerPoker (MultiScaleImage owner) : base (owner) { }
public DZContext(MultiScaleImage msi) { TargetViewportWidth = 1; MinViewportWidth = .05; MaxViewportWidth = 2; Owner = msi; Owner.UseSprings = false; Owner.ViewportChanged += new RoutedEventHandler(Owner_ViewportChanged); ImagesToHide = new List<MultiScaleSubImage>(); ImagesToShow = new List<MultiScaleSubImage>(); /* --------------------------------------------------------------------------------------------------- -- Start Mouse and Keyboard handler for the MultiScaleImage -- This block of code is the mouse and keyboard handler for the DeepZoom control. Parts of this code is borrowed from Scott Hanselman's and Soul Solutions blogs // Based on prior work done by Lutz Gerhard, Peter Blois, and Scott Hanselman ---------------------------------------------------------------------------------------------------- */ bool mouseButtonPressed = false; bool dragInProgress = false; Point dragOffset = new Point(); Point currentPosition = new Point(); msi.ImageOpenSucceeded += new RoutedEventHandler(msi_ImageOpenSucceeded); msi.MotionFinished += new RoutedEventHandler(ArrangeOnFirstMotionFinished_MotionFinished); /* KeyDown += delegate(object sender, KeyEventArgs e) { Point p = msi.ElementToLogicalPoint(new Point((msi.Width / 2), ((msi.Width / msi.AspectRatio) / 2))); switch (e.Key) { case Key.I: case Key.C: case Key.Add: msi.ZoomAboutLogicalPoint(1.1, p.X, p.Y); break; case Key.O: case Key.Space: case Key.Subtract: msi.ZoomAboutLogicalPoint(0.9, p.X, p.Y); break; case Key.Left: case Key.A: msi.ViewportOrigin = new Point(msi.ViewportOrigin.X - 0.1, msi.ViewportOrigin.Y); break; case Key.Right: case Key.D: msi.ViewportOrigin = new Point(msi.ViewportOrigin.X + 0.1, msi.ViewportOrigin.Y); break; case Key.Up: case Key.W: msi.ViewportOrigin = new Point(msi.ViewportOrigin.X, msi.ViewportOrigin.Y - 0.1); break; case Key.Down: case Key.S: msi.ViewportOrigin = new Point(msi.ViewportOrigin.X, msi.ViewportOrigin.Y + 0.1); break; case Key.R: RandomizeAndArrange(); break; } }; */ msi.MouseWheel += delegate(object sender, MouseWheelEventArgs e) { DZContext context = this; if (!context.IsMouseWheelEnabled) return; e.Handled = true; if (e.Delta > 0) msi.Zoom(1.2, context.LastMousePosition); //, context.IsZoomForceEnabled); else msi.Zoom(0.8, context.LastMousePosition); //, context.IsZoomForceEnabled); context.ClickedImageIndex = -1; }; msi.MouseLeave += delegate(object sender, MouseEventArgs e) { if (mouseButtonPressed) { mouseButtonPressed = false; dragInProgress = false; } }; msi.MouseLeftButtonDown += delegate(object sender, MouseButtonEventArgs e) { mouseButtonPressed = false; if (IsMousePanEnabled) { mouseButtonPressed = true; } dragInProgress = false; dragOffset = e.GetPosition(msi); currentPosition = msi.ViewportOrigin; ClickedImageIndex = -1; }; msi.MouseMove += delegate(object sender, MouseEventArgs e) { if (mouseButtonPressed) { dragInProgress = true; Point newOrigin = new Point(); newOrigin.X = currentPosition.X - (((e.GetPosition(msi).X - dragOffset.X) / msi.ActualWidth) * msi.ViewportWidth); newOrigin.Y = currentPosition.Y - (((e.GetPosition(msi).Y - dragOffset.Y) / msi.ActualHeight) * msi.ViewportWidth); msi.ViewportOrigin = newOrigin; } LastMousePosition = e.GetPosition(msi); }; msi.MouseLeftButtonUp += delegate(object sender, MouseButtonEventArgs e) { if (mouseButtonPressed && !dragInProgress) { Point p = msi.ElementToLogicalPoint(e.GetPosition(msi)); int subImageIndex = msi.SubImageHitTest(p); if (subImageIndex >= 0) { msi.DisplaySubImageCentered(subImageIndex); ClickedImageIndex = subImageIndex; } if (IsZoomOnClickEnabled) { bool shiftDown = (Keyboard.Modifiers & ModifierKeys.Shift) == ModifierKeys.Shift; if (shiftDown) msi.Zoom(0.5, e.GetPosition(msi)); else msi.Zoom(2.0, e.GetPosition(msi)); } } mouseButtonPressed = false; dragInProgress = false; }; }
void msi_Loaded(object sender, RoutedEventArgs e) { if (this.Children.Contains(_msi)) this.Children.Remove(_msi); _msi = (System.Windows.Controls.MultiScaleImage)sender; //_msi.CacheMode = new BitmapCache(); }
/// <summary> /// Gets the parts from the template. /// </summary> public override void OnApplyTemplate() { base.OnApplyTemplate(); this.multiScaleImage = this.GetTemplateChild(DeepZoomViewer.ElementMultiScaleImage) as MultiScaleImage; if (this.multiScaleImage != null) { this.multiScaleImage.ImageOpenSucceeded += new RoutedEventHandler(this.MultiScaleImage_ImageOpenSucceeded); this.multiScaleImage.ImageOpenFailed += new EventHandler<ExceptionRoutedEventArgs>(this.MultiScaleImage_ImageOpenFailed); } }
private void WriteInnerElement(MultiScaleImage image, string typeName) { //TODO: implement }