Thanks to a good mathematician that goes by the moniker of rambler.elf, I was able to fix the zooming problem with my Media Magnifying glass Silverlight sample.  After adding his fix, the zooming worked perfectly.  I made two additional enhancements to simplify reuse - you can now use this with any MediaElement for video:

  1. Because of a limitation in Silverlight 1.0, the namescope mechanism that is used to avoid name conflicts with imported XAML, it makes it impossible to have a VideoBrush in a different namescope than its source MediaElement.  I fixed this problem by adding a prefix to all of the names programatically once the XAML is downloaded.  I did this with a regular expression (where Synergist.Magnifier.Prefix is "Synergist_Magnifier_"):
         xaml = xaml.replace(/x:Name=\"/g, 'x:Name="' + Synergist.Magnifier.Prefix);
    Then, when using FindName within the magnifier code, I use that prefix again.

  2. To speed loading and make it easily reusable, I moved both the JavaScript and XAML for the magnifier into a zip archive.
  3. I added some instructions to the hosting page to aid in reuse.


If you want to watch a recording of the webcast where I explain the demo (and all of my earlier webcasts as well) go here: