Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 绑定到媒体元素,_C#_Xaml_Data Binding_Windows Store Apps_Win Universal App - Fatal编程技术网

C# 绑定到媒体元素,

C# 绑定到媒体元素,,c#,xaml,data-binding,windows-store-apps,win-universal-app,C#,Xaml,Data Binding,Windows Store Apps,Win Universal App,我正在尝试绑定到媒体元素,但所有尝试均失败, 代码隐藏:- private void myg_ItemClick(object sender, ItemClickEventArgs e) { string str = ((EgyGuide.Models.Arabic)e.ClickedItem).Sound; MediaElement m1 = new MediaElement(); m1.Source = new System.U

我正在尝试绑定到媒体元素,但所有尝试均失败, 代码隐藏:-

    private void myg_ItemClick(object sender, ItemClickEventArgs e)
    {
        string str = ((EgyGuide.Models.Arabic)e.ClickedItem).Sound;
        MediaElement m1 = new MediaElement();
        m1.Source = new System.Uri("ms-appx:///" + str);
        m1.Play();
    }
XAML:-

                <GridView x:Name="myg"
                      IsItemClickEnabled="True"
                      ItemClick="myg_ItemClick">
                <GridView.ItemTemplate>
                    <DataTemplate>
                        <Grid>
                            <StackPanel Orientation="Horizontal">
                                <TextBlock Text="{Binding English}"
                                           FontSize="22" />
                                <TextBlock Text="{Binding Arabia}"
                                           FontSize="22" />
                            </StackPanel>
                        </Grid>
                    </DataTemplate>
                </GridView.ItemTemplate>
            </GridView>

当我将源代码直接添加到我的XAML时,它是可以工作的,但是现在当我使用这个代码时,它就不再工作了,声音根本不播放了。 请帮我把这个弄到手好吗?
谢谢这里有几个问题。首先,
MediaElement
如果不在XAML树中,则不会播放-您需要添加它。其次,您不应该立即调用
Play
,而是应该等待
MediaOpened
事件的发生。大概是这样的:

代码:

XAML:


这里有几个问题。首先,
MediaElement
如果不在XAML树中,则不会播放-您需要添加它。其次,您不应该立即调用
Play
,而是应该等待
MediaOpened
事件的发生。大概是这样的:

代码:

XAML:


这里有几个问题。首先,
MediaElement
如果不在XAML树中,则不会播放-您需要添加它。其次,您不应该立即调用
Play
,而是应该等待
MediaOpened
事件的发生。大概是这样的:

代码:

XAML:


这里有几个问题。首先,
MediaElement
如果不在XAML树中,则不会播放-您需要添加它。其次,您不应该立即调用
Play
,而是应该等待
MediaOpened
事件的发生。大概是这样的:

代码:

XAML:




首先,请将代码放在代码块中,而不是图像中(例如,您的第一个代码很难阅读)。第二,你犯了什么错误?“它不工作”不是一个问题陈述。我没有得到错误绑定根本不工作,没有声音播放。图像已删除。好的,但您是否收到任何
系统数据
异常?绑定很少会无声地失败。根本不会,但我相信这可能与URI有关?因为当我在xaml中创建了另一个媒体元素,然后在我的代码中分配了我用当前媒体元素的源创建的媒体元素源时,媒体元素的声音成功播放:(当然有可能。在代码隐藏中构造源Uri比XAML复杂得多。不过应该是可能的。首先,请将代码放在代码块中,而不是图像中(例如,您的第一个很难读取)。其次,您遇到了什么错误?“它不工作”这不是一个问题。我没有收到任何错误。绑定根本不起作用,没有声音播放。图像被删除。好的,但是你有任何
系统。数据
异常吗?绑定很少会无声地失败。没有,但我相信这可能与URI有关?因为当我在xaml中创建另一个媒体元素,然后在我的代码中创建另一个媒体元素时在分配媒体元素源(我用当前媒体元素的源创建的媒体元素源)时,媒体元素的声音成功播放。:(当然可能。在代码隐藏中构造源Uri比XAML复杂得多。不过应该是可能的。首先,请将代码放在代码块中,而不是图像中(例如,你的第一个字母很难读懂)。第二,你的错误是什么?“它不起作用”这不是一个问题。我没有收到任何错误。绑定根本不起作用,没有声音播放。图像被删除。好的,但是你有任何
系统。数据
异常吗?绑定很少会无声地失败。没有,但我相信这可能与URI有关?因为当我在xaml中创建另一个媒体元素,然后在我的代码中创建另一个媒体元素时在分配媒体元素源(我用当前媒体元素的源创建的媒体元素源)时,媒体元素的声音成功播放。:(当然可能。在代码隐藏中构造源Uri比XAML复杂得多。不过应该是可能的。首先,请将代码放在代码块中,而不是图像中(例如,你的第一个字母很难读懂)。第二,你的错误是什么?“它不起作用”这不是一个问题。我没有收到任何错误。绑定根本不起作用,没有声音播放。图像被删除。好的,但是你有任何
系统。数据
异常吗?绑定很少会无声地失败。没有,但我相信这可能与URI有关?因为当我在xaml中创建另一个媒体元素,然后在我的代码中创建另一个媒体元素时在分配媒体元素源(我用当前媒体元素的源创建)时,媒体元素的声音成功播放。:(当然可以。在代码隐藏中构造源Uri要比XAML复杂得多。不过应该是可能的。
MediaElement me;

private void StartButtonClicked(object sender, RoutedEventArgs e)
{
  me = new MediaElement();

  // Register for critical events. CurrentStateChanged is also useful
  me.MediaOpened += MediaElementMediaOpened;
  me.MediaFailed += MediaElementMediaFailed;

  // Start opening the file
  me.Source = new Uri("ms-appx:///Assets/WestEndGirls.wma");

  // Add to the XAML tree (assumes a Panel with the name "Root")
  Root.Children.Add(me);
}

// Errors will be reported here
void MediaElementMediaFailed(object sender, ExceptionRoutedEventArgs e)
{
  Debug.WriteLine(e.ErrorMessage);
}

// Only once the media has been opened can you play it
void MediaElementMediaOpened(object sender, RoutedEventArgs e)
{
  me.Play();
}
<StackPanel x:Name="Root">
  <Button Content="Start" Click="StartButtonClicked" />
</StackPanel>