使用装订后点击图像后如何打开网页?

时间:2014-05-05 18:41:39

标签: c# windows-phone-8

我为Windows Phone制作原子阅读器。 mainpage.xaml.cs代码如下所示:

void ywc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
    StringReader sr = new StringReader(e.Result);
    var reader = XmlReader.Create(sr);
    var document = XDocument.Load(reader);

    XNamespace atom = "http://www.w3.org/2005/Atom";
    XNamespace media = "http://search.yahoo.com/mrss/";
    var YTitems = from entry in document.Descendants(atom + "entry")
                  select new RSSFeed
                  {
                       ImageSRC = entry.Element(media + "group").Element(media + "thumbnail").Attribute("url").Value,
                       Title = entry.Element(atom + "title").Value,
                       pubDate = entry.Element(atom + "published").Value.Substring(0, 10),
                       VideoURL  = entry.Element(media + "group").Element(media + "content").Attribute("url").Value                                    
                   };
    YoutubeList.ItemsSource = YTitems.ToList();                
}

private void screenshot_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
    Uri uri = new Uri("insertyoutubeurihere");

    WebBrowserTask webBrowserTask = new WebBrowserTask();
    webBrowserTask.Uri = uri;
    webBrowserTask.Show();            
}

mainpage.xaml代码如下所示:

<phone:LongListSelector Margin="0,0,-22,0" Name="YoutubeList">
    <phone:LongListSelector.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal" Margin="12,2,0,4" Width="Auto">
                <Image x:Name="screenshot" Source="{Binding Path=ImageSRC}" Width="150" Tap="screenshot_Tap"/>
                <StackPanel Width="311" Margin="8,-7,0,0">
                    <TextBlock Text="{Binding Path=Title}" TextWrapping="Wrap" Margin="10,0" Style="{StaticResource PhoneTextLargeStyle}" FontSize="{StaticResource PhoneFontSizeMedium}" />
                    <TextBlock Text="{Binding Path=pubDate}" TextWrapping="Wrap" Margin="10,-2,10,0" Style="{StaticResource PhoneTextSubtleStyle}" />
                </StackPanel>
            </StackPanel>
         </DataTemplate>
     </phone:LongListSelector.ItemTemplate>
 </phone:LongListSelector>

我真的不知道如何将uri链接到相应的VideoURL。 因此,当用户点击时,会打开带有视频网址的网页。

3 个答案:

答案 0 :(得分:0)

您可以使用命令绑定。您可以使用按钮或超链接代替两个文本块。将按钮或超链接的Command属性绑定到viewmodel的ICommand属性。

有关ICommand的更多信息:http://msdn.microsoft.com/library/vstudio/system.windows.input.icommand

如果您使用的是MVVM Light,您还可以查看RelayCommand类。

答案 1 :(得分:0)

这个:

<StackPanel>
       <HyperlinkButton Height="310" 
                        Width="200" 
                        NavigateUri="{Binding Path=ImageSRC}" 
                        Name="hyperlinkButton1" 
                        TargetName="_blank"> 
            <HyperlinkButton.Background> 
                <ImageBrush ImageSource="{Binding Path=ImageSRC}"/> 
            </HyperlinkButton.Background> 
        </HyperlinkButton>

...

</StackPanel>

答案 2 :(得分:-1)

请使用:

System.Diagnostics.Process.Start(urlString); 

...

这应该在默认浏览器中启动网址,无论你在哪个平台(WinXP,WinVista,Win7,Win8等)......

请记住,它希望一个完整的网址将其识别为并启动浏览器...