2011-11-24 2 views
1

서버에서 항목 목록을 보내도록 요청하는 응용 프로그램을 작성하려고합니다. 링크로 windows 전화 페이지에 표시됩니다. 나는 POST를 수행하고 항목을 가져올 WebClient.UploadStringAsync를 사용하고 있습니다. POST가 정상적으로 작동하고 응답을받을 수 있습니다.Windows Phone에서 동적 링크 (하이퍼 링크 단추) 생성 Silverlight App

UploadStringCompleted 이벤트에서 링크를 만들고 스택 패널에 동적 링크를 추가하는 옵션/가능성은 무엇입니까? 또한 링크를 만드는 데 사용할 수있는 옵션 인 HyperLinkButton이 있으며, 링크가 클릭됩니다.

하이퍼 링크 내에서 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

무엇 단지 HyperLink 인라인 요소를 사용하여 문제?

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

기타 예제 on MSDN.

네비게이션에 이벤트 처리기를 연결하고 거기에 POST 요청을 할 수 있습니다.

0

StackPanel 대신 데이터 바인딩을 사용하여 ListBox을 사용할 수 있습니다. 목록의 각 행은 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.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; 
} 
+0

MEEP. 이미'HyperlinkButton' 사용을 중지하십시오. 망고는 읽을 수있는 집중적 인 스타일링이 필요없는 요소가 있습니다. –

+0

두 가지 옵션을 사용하여 동작과 성능을 확인해 보겠습니다. @Claus 당신은 하이퍼 링크가 버튼보다 더 좋은 옵션이라는 것을 의미합니까? – srcKode

+0

예, 매우 그렇습니다. 그것은 실제로 목적을 위해 설계 되었기 때문입니다. HyperLinkButton은 Silverlight의 나머지 부분으로, 많은 스타일링이 필요합니다. –