Audio 使用MediaElement和Caliburn Micro在Silverlight中播放声音
如何使用Caliburn Micro在Silverlight中播放MP3 MediaElement的“play()”方法需要基于ViewModel中的布尔变量执行 提前谢谢 使用IResult。 编辑:基于一个布尔值,如果你描述了这个场景,我可以修改这个示例 视图:Audio 使用MediaElement和Caliburn Micro在Silverlight中播放声音,audio,silverlight-4.0,mvvm,mediaelement,caliburn.micro,Audio,Silverlight 4.0,Mvvm,Mediaelement,Caliburn.micro,如何使用Caliburn Micro在Silverlight中播放MP3 MediaElement的“play()”方法需要基于ViewModel中的布尔变量执行 提前谢谢 使用IResult。 编辑:基于一个布尔值,如果你描述了这个场景,我可以修改这个示例 视图: 视图模型: public class MediaViewModel : Screen { public MediaViewModel() { DisplayName
视图模型:
public class MediaViewModel : Screen
{
public MediaViewModel()
{
DisplayName = "Media Sample";
}
public IEnumerable<IResult> Play()
{
var result = new PlayMediaResult();
yield return result;
}
}
公共类MediaViewModel:屏幕
{
公共媒体视图模型()
{
DisplayName=“媒体样本”;
}
公共数字游戏
{
var result=新的PlayMediaResult();
收益结果;
}
}
PlayMediaResult:
public class PlayMediaResult : IResult
{
public void Execute(ActionExecutionContext context)
{
var view = context.View as FrameworkElement;
var mediaElement = FindVisualChild<MediaElement>(view);
if (mediaElement != null)
{
mediaElement.Play();
Completed(this, new ResultCompletionEventArgs {});
}
Completed(this, new ResultCompletionEventArgs {});
}
public event EventHandler<ResultCompletionEventArgs> Completed;
public static TChildItem FindVisualChild<TChildItem>(DependencyObject obj)
where TChildItem : DependencyObject
{
for (var i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
{
var child = VisualTreeHelper.GetChild(obj, i);
if (child != null && child is TChildItem)
return (TChildItem) child;
var childOfChild = FindVisualChild<TChildItem>(child);
if (childOfChild != null)
return childOfChild;
}
return null;
}
}
}
公共类PlayMediaResult:IResult
{
public void Execute(ActionExecutionContext上下文)
{
var view=context.view作为框架元素;
var medialelement=FindVisualChild(视图);
if(mediaElement!=null)
{
mediaElement.Play();
已完成(这是新的ResultCompletionEventArgs{});
}
已完成(这是新的ResultCompletionEventArgs{});
}
公共事件事件处理程序已完成;
公共静态TChildItem FindVisualChild(DependencyObject obj)
其中TChildItem:DependencyObject
{
for(var i=0;i
public class PlayMediaResult : IResult
{
public void Execute(ActionExecutionContext context)
{
var view = context.View as FrameworkElement;
var mediaElement = FindVisualChild<MediaElement>(view);
if (mediaElement != null)
{
mediaElement.Play();
Completed(this, new ResultCompletionEventArgs {});
}
Completed(this, new ResultCompletionEventArgs {});
}
public event EventHandler<ResultCompletionEventArgs> Completed;
public static TChildItem FindVisualChild<TChildItem>(DependencyObject obj)
where TChildItem : DependencyObject
{
for (var i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
{
var child = VisualTreeHelper.GetChild(obj, i);
if (child != null && child is TChildItem)
return (TChildItem) child;
var childOfChild = FindVisualChild<TChildItem>(child);
if (childOfChild != null)
return childOfChild;
}
return null;
}
}
}