在Windows Phone Silverlight应用程序中生成动态链接(超链接按钮)

问题描述:

我正在尝试构建一个请求服务器发送项目列表的应用程序;它们在windows phone页面上显示为链接。我使用WebClient.UploadStringAsync来执行POST并获取这些项目。 POST工作正常,我能够得到回应。在Windows Phone Silverlight应用程序中生成动态链接(超链接按钮)

在UploadStringCompleted事件中创建链接并添加动态链接到堆栈面板的选项/可能性。HyperLinkBut​​ton是用来创建链接的选项;我也希望在链接被点击。

我尝试使用超链接中的HyperLinkBut​​ton,TextBlock,但没有任何效果。

有什么建议?


非常感谢您的建议;我做的错误是没有设置HyperLinkBut​​ton的TargetName属性。我得到它的工作后,我将它设置正确,

for (int i = 0; i <= itemList.GetUpperBound(0); i++) 
     { 

      if (!String.IsNullOrEmpty(itemList[i, 1])) 
       { 
        HyperlinkButton btn = new HyperlinkButton(); 
        btn.Content = itemList[i, 1]; 
        btn.TargetName = "_blank"; 
        ItemPanel.Children.Add(btn); 
       } 
} 

KRZ

出了什么问题只是使用HyperLink内联元素?

<RichTextBox IsReadOnly="True"> 
    <Paragraph> 
     Displaying text with <Hyperlink NavigateUri="http://www.msdn.com">hyperlink</Hyperlink>. 
    </Paragraph> 
</RichTextBox> 

更多示例on MSDN

您可以在导航上附加事件处理程序,并在那里执行POST请求。

您可以使用带有数据绑定的ListBox而不是StackPanel。列表中的每一行将是一个HyperlinkButton

列表框与项模板:

<ListBox HorizontalAlignment="Stretch" Margin="12,6,0,0" Name="listBox1" VerticalAlignment="Top" VerticalContentAlignment="Stretch"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <HyperlinkButton Content="{Binding}" Click="HyperlinkButton_Click" /> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

后面的代码:

// handler is executed when a HyperlinkButton was pressed by user 
private void HyperlinkButton_Click(object sender, RoutedEventArgs e) 
{ 
    // get the clicked button and show its content (which is the URL) 
    // (you would do your POST here) 
    MessageBox.Show("Clicked URL " + ((HyperlinkButton)sender).Content); 
} 

private void button1_Click(object sender, RoutedEventArgs e) 
{ 
    // prepare some demo data 
    List<string> urls = new List<string>(); 
    urls.Add("http://www.*.com"); 
    urls.Add("http://www.google.com"); 

    // set list or URLs as item source of list box; each URL will have its own button 
    listBox1.ItemsSource = urls; 
} 
+0

MEEP。已经停止使用'HyperlinkBut​​ton'。芒果有一个元素,不需要密集的造型看起来可读。 –

+0

我会尝试这两个选项以查看行为和他们的表现。 @克劳斯你的意思是HyperLink是比Button更好的选择。 – srcKode

+0

是的,非常非常。因为它实际上是为此目的而设计的。 HyperLinkBut​​ton是Silverlight的一个剩余部分,它需要大量的样式才能看清楚。 –