在Silverlight中,工具提示可以包含任意数量的元素。
但是,它不会获得焦点,因此您无法在其中进行用户交互。
但是,您可以在工具提示打开后立即开始播放视频,并在工具提示关闭后立即停止播放视频吗?
答案 0 :(得分:1)
这是我在Stack Overflow上的第一个答案,所以我要求你的幽默 我想你可以使用视频画笔在工具提示中运行你的视频。
以下是我用来在图表中的条形图上绘制火灾视频的代码,代表用玉米加热。 (长篇故事)就在这里,你可以看到它被设置为椭圆的填充。
#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);
}
答案 1 :(得分:0)
你可以按照BPerreault的建议使用VideoBrush,但你也可以将Tooltip.Content设置为MediaElement。
这是因为Tooltip的Content属性继承自ContentControl,ContentControl的Content属性可以是任何类型的对象,例如字符串,UIElement或DateTime。当Content设置为UIElement(如MediaElement)时,UIElement将显示在ContentControl中。当Content设置为其他类型的对象时,ContentControl中将显示该对象的字符串表示形式。 (from documentation)
它应该是这样的:
<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 >