是否可以在Silverlight的工具提示中启动视频播放?

是否可以在Silverlight的工具提示中启动视频播放?,silverlight,video,Silverlight,Video,在Silverlight中,工具提示可以包含任意数量的元素 但是,它不接收焦点,因此您无法在其中进行用户交互 但是,您能在工具提示打开时立即开始播放视频,并在工具提示关闭时立即停止视频吗?这是我关于堆栈溢出的第一个答案,请您保持幽默。 我想你可以使用视频刷在工具提示中运行视频 这是我用来在图表中的条形图上绘制火灾视频的一些代码,表示用玉米加热。(长话短说)在这里,你可以看到它被设置为椭圆的填充 #region video brush setup protected void se

在Silverlight中,工具提示可以包含任意数量的元素

但是,它不接收焦点,因此您无法在其中进行用户交互


但是,您能在工具提示打开时立即开始播放视频,并在工具提示关闭时立即停止视频吗?

这是我关于堆栈溢出的第一个答案,请您保持幽默。
我想你可以使用视频刷在工具提示中运行视频

这是我用来在图表中的条形图上绘制火灾视频的一些代码,表示用玉米加热。(长话短说)在这里,你可以看到它被设置为椭圆的填充

 #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);

       }

这是我对堆栈溢出的第一个回答,所以我请你保持幽默。
我想你可以使用视频刷在工具提示中运行视频

这是我用来在图表中的条形图上绘制火灾视频的一些代码,表示用玉米加热。(长话短说)在这里,你可以看到它被设置为椭圆的填充

 #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);

       }

您可以按照BPerreault的建议使用VideoBrush,但也可以将Tooltip.Content设置为MediaElement

这是因为工具提示的Content属性继承自ContentControl,ContentControl的Content属性可以是任何类型的对象,例如字符串、UIElement或DateTime。当内容设置为UIElement(如MediaElement)时,UIElement将显示在ContentControl中。将内容设置为其他类型的对象时,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 >

您可以按照BPerreault的建议使用视频画笔,但也可以将Tooltip.Content设置为MediaElement

这是因为工具提示的Content属性继承自ContentControl,ContentControl的Content属性可以是任何类型的对象,例如字符串、UIElement或DateTime。当内容设置为UIElement(如MediaElement)时,UIElement将显示在ContentControl中。将内容设置为其他类型的对象时,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 >