Можно ли запустить воспроизведение видео во всплывающей подсказке в Silverlight? - PullRequest
1 голос
/ 12 февраля 2009

В Silverlight всплывающая подсказка может содержать столько элементов, сколько вы хотите.

Однако он не получает фокус, поэтому в нем не может быть интерактивности пользователя.

Не могли бы вы, однако, начать воспроизведение видео, как только всплывающая подсказка откроется, и остановить воспроизведение видео, как только подсказка закроется?

Ответы [ 2 ]

1 голос
/ 12 февраля 2009

Это мой первый ответ о переполнении стека, поэтому я прошу вашего хорошего настроения.
Я думаю, что вы можете запустить свое видео во всплывающей подсказке, используя кисть видео.

Вот некоторый код, который я использовал, чтобы нарисовать видео о пожаре на столбце диаграммы, изображающей нагревание кукурузой. (длинная история) прямо здесь, вы можете видеть, что он настроен на заполнение эллипса.

 #region video brush setup
       protected void setupVideo()
       {
           VideoBrush _vb;
           MediaElement mevideo;

           _vb = new VideoBrush();
           mevideo = new MediaElement();
           mevideo.SetValue(Grid.NameProperty, "video");
           Uri videoUri = new Uri("http://www.faxt.com/videos/ezburnboilerfire.wmv", UriKind.Absolute);
           mevideo.Source = videoUri;
           mevideo.Visibility = Visibility.Collapsed;
           mevideo.MediaEnded += new RoutedEventHandler(me_MediaEnded);

           MediaRoot.Children.Add(mevideo);
           _vb.SetSource(mevideo);

           Ellipse el = new Ellipse();
           el.Width = 100;
           el.Height = 100;
           el.Fill = _vb;
           MediaRoot.Children.Add(el);

       }
0 голосов
/ 12 февраля 2009

Вы можете сделать это с VideoBrush, как предложено BPerreault, но вы также можете просто установить Tooltip.Content в MediaElement.

Это связано с тем, что свойство Content Tooltip наследуется от ContentControl, а свойство Content ContentControl может быть объектом любого типа, например строкой, UIElement или DateTime. Когда для Content установлено значение UIElement (например, MediaElement), UIElement отображается в ContentControl. Когда для Content задан объект другого типа, строковое представление объекта отображается в ContentControl. ( из документации )

Это должно быть примерно так:

<TextBlock x:Name="myText" Text="MouseOver and you'll get a ToolTip!">
  <ToolTipService.ToolTip>
    <MediaElement x:Name="myVideo" Source="Butterfly.wmv" Width="300" Height="300" />
  </ToolTipService.ToolTip>
</TextBlock >
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...