Esempio n. 1
0
        //private BitmapFrame getVideoCache(Uri uri)
        //{
        //    VideoDrawing vd = new VideoDrawing();
        //    vd.
        //}
        private MediaElement createMediaElement(Uri uri)
        {
            MediaElement       retMediaElement    = null;
            RoutedEventHandler mediaElementOpened = null;

            mediaElementOpened = (o, e) =>
            {
                retMediaElement.RemoveHandler(MediaElement.MediaOpenedEvent, mediaElementOpened);
                MediaInterval = retMediaElement.NaturalDuration.TimeSpan;
            };

            RoutedEventHandler mediaElementEnded = null;

            mediaElementEnded = (o, e) =>
            {
                Pause();
                if (mediaElement != null)
                {
                    mediaElement.Position = TimeSpan.FromSeconds(1);
                }
            };

            retMediaElement = new MediaElement()
            {
                LoadedBehavior   = MediaState.Manual,
                ScrubbingEnabled = true,
                Source           = uri,
                Cursor           = Cursors.Hand
            };

            retMediaElement.AddHandler(MediaElement.MediaOpenedEvent, mediaElementOpened);
            retMediaElement.AddHandler(MediaElement.MediaEndedEvent, mediaElementEnded);
            retMediaElement.MouseDown += new MouseButtonEventHandler((o, e) => { Pause(); });

            return(retMediaElement);
        }
Esempio n. 2
0
        public void AddRemoveHandler()
        {
            Delegate eh  = new EventHandler((object sender, EventArgs ea) => { });
            Delegate keh = new KeyEventHandler((object sender, KeyEventArgs ea) => { });
            Delegate meh = new MouseButtonEventHandler((object sender, MouseButtonEventArgs ea) => { });
            Delegate weh = new MouseWheelEventHandler((object sender, MouseWheelEventArgs ea) => { });
            Delegate teh = new TextCompositionEventHandler((object sender, TextCompositionEventArgs ea) => { });

            // OK
            RoutedEvent [] events1   = new RoutedEvent [] { UIElement.KeyDownEvent, UIElement.KeyUpEvent, UIElement.MouseLeftButtonDownEvent, UIElement.MouseLeftButtonUpEvent, UIElement.MouseWheelEvent, UIElement.TextInputEvent, UIElement.TextInputStartEvent, UIElement.TextInputUpdateEvent };
            Delegate []    handlers1 = new Delegate [] { keh, keh, meh, meh, weh, teh, teh, teh };

            // ArgumentNullException
            RoutedEvent [] events2   = new RoutedEvent [] { null, UIElement.KeyUpEvent };
            Delegate []    handlers2 = new Delegate [] { keh, null };

            // ArgumentException
            RoutedEvent [] events3   = new RoutedEvent [] { FrameworkElement.LoadedEvent, UIElement.KeyUpEvent, UIElement.MouseLeftButtonUpEvent, UIElement.MouseLeftButtonUpEvent, UIElement.TextInputUpdateEvent, UIElement.MouseWheelEvent };
            Delegate []    handlers3 = new Delegate [] { eh, meh, keh, teh, eh, meh };

            // NotImplementedException
            RoutedEvent [] events4   = new RoutedEvent [] { UIElement.ManipulationCompletedEvent, UIElement.ManipulationDeltaEvent, UIElement.ManipulationStartedEvent };
            Delegate []    handlers4 = new Delegate [] { eh, eh, eh };

            UIElement ctrl = new MediaElement();

            // AddHandler
            for (int i = 0; i < events1.Length; i++)
            {
                ctrl.AddHandler(events1 [i], handlers1 [i], false);
            }
            for (int i = 0; i < events2.Length; i++)
            {
                Assert.Throws <ArgumentNullException> (() => ctrl.AddHandler(events2 [i], handlers2 [i], false));
            }
            for (int i = 0; i < events3.Length; i++)
            {
                Assert.Throws <ArgumentException> (() => ctrl.AddHandler(events3 [i], handlers3 [i], false));
            }
            for (int i = 0; i < events4.Length; i++)
            {
                Assert.Throws <NotImplementedException> (() => ctrl.AddHandler(events4 [i], handlers4 [i], false));
            }
            // RemoveHandler
            for (int i = 0; i < events1.Length; i++)
            {
                ctrl.RemoveHandler(events1 [i], handlers1 [i]);
            }
            for (int i = 0; i < events2.Length; i++)
            {
                Assert.Throws <ArgumentNullException> (() => ctrl.RemoveHandler(events2 [i], handlers2 [i]));
            }
            for (int i = 0; i < events3.Length; i++)
            {
                Assert.Throws <ArgumentException> (() => ctrl.RemoveHandler(events3 [i], handlers3 [i]));
            }
            for (int i = 0; i < events4.Length; i++)
            {
                Assert.Throws <NotImplementedException> (() => ctrl.RemoveHandler(events4 [i], handlers4 [i]));
            }
        }