我正在尝试构建一个请求服务器发送项目列表的应用程序;它们在windows手机页面上显示为链接。我正在使用WebClient.UploadStringAsync进行POST并获取项目。 POST工作正常,我能得到答复。
在UploadStringCompleted事件中创建链接和向堆栈面板添加动态链接有哪些选项/可能性。还有HyperLinkButton用于创建链接的选项;我还想在链接时进行发布点击。
我尝试在HyperLink中使用HyperLinkButton,TextBlock但没有任何作用。
任何建议?
非常感谢你的建议;我做的错误是没有设置HyperLinkButton的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
答案 0 :(得分:0)
使用HyperLink
内联元素有什么问题?
<RichTextBox IsReadOnly="True">
<Paragraph>
Displaying text with <Hyperlink NavigateUri="http://www.msdn.com">hyperlink</Hyperlink>.
</Paragraph>
</RichTextBox>
更多示例on MSDN。
您可以在Navigation上附加事件处理程序,并在那里执行POST请求。
答案 1 :(得分:0)
您可以使用带有数据绑定的ListBox
而不是StackPanel
。列表中的每一行都是一个HyperlinkButton
。
包含项目模板的ListBox:
<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.stackoverflow.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;
}