텍스트 상자에 링크가 포함되어 있습니다. 텍스트의 내용이 런타임에 생성됩니다. 내 문제는 텍스트 내부의 링크를 클릭 할 수 없다는 것입니다. 어떻게 할 수 있습니까? 텍스트 블록 안의 모든 링크를 클릭 할 수 있도록 링크를 탭하면 웹 브라우저를 열어야합니다. 안드로이드에서는 autolink를 사용하여 설정할 수 있습니다. 그런 옵션은 wp7 또는 wp7.1 mango에서 사용할 수 있습니까?wp7에서 클릭 가능한 텍스트 블록의 링크 설정 방법
6
A
답변
12
HyperLink을 사용하십시오.
<TextBlock>
<Run>Pure Text</Run>
<Hyperlink Command="{Binding HyperLinkTapped}">http://google.com</Hyperlink>
<Run>Pure Text Again</Run>
</TextBlock>
이것은 Windows Phone 7.1 (망고)에서 지원됩니다.
필요한 경우 런타임에서 데이터를 사용하여 자신의 FlowDocument를 만들 수 있습니다. 문자열에서 FlowDocument를 생성하는 방법에
예 : 실버를 RichTextBox contol에서
private void OnMessageReceived(string message)
{
var textBlock = new RichTextBox()
{
TextWrapping = TextWrapping.Wrap,
IsReadOnly = true,
};
var paragraph = new Paragraph();
var runs = new List<Inline>();
foreach (var word in message.Split(' '))
{
Uri uri;
if (Uri.TryCreate(word, UriKind.Absolute, out uri) ||
(word.StartsWith("www.") && Uri.TryCreate("http://" + word, UriKind.Absolute, out uri)))
{
var link = new Hyperlink();
link.Inlines.Add(new Run() { Text = word });
link.Click += (sender, e) =>
{
var hyperLink = (sender as Hyperlink);
new WebBrowserTask() { Uri = uri }.Show();
};
runs.Add(link);
}
else
{
runs.Add(new Run() { Text = word });
}
runs.Add(new Run() { Text = " "});
}
foreach (var run in runs)
paragraph.Inlines.Add(run);
textBlock.Blocks.Add(paragraph);
MessagesListBox.Children.Add(textBlock);
MessagesListBox.UpdateLayout();
}
2
이렇게하는 기능은 기본적으로 제공되지 않습니다.
텍스트 (링크 포함)가 HTML 인 경우 웹 브라우저 컨트롤에 표시 할 수 있습니다.
그렇지 않으면 텍스트를 파싱하고 직접 링크를 만들어야합니다. WrapPanel 내의 TextBlock과 HyperlinkButton을 조합하면이 방법을 사용할 수 있습니다.
+0
하이퍼 링크 버튼을 더 이상 사용하지 않아도됩니다. –
2
가 당신을 도울 수 있습니다.
<RichTextBox>
<Paragraph>
<Run Text="This have to navigate me to Google: "/>
<Hyperlink NavigateUri="http://google.com" TargetName="_blank">google.com</Hyperlink>
</Paragraph>
</RichTextBox>
+0
Perfect - Thanks! –
관련 문제
- 1. 클릭 가능한 링크 (하이퍼 링크)?
- 2. -drawRect에서 클릭 가능한 텍스트 :
- 3. UIAlertView의 클릭 가능한 링크
- 4. DrawingGroup에 클릭 가능한 텍스트 추가
- 5. LI 내의 클릭 가능한 LI 오버로드 링크
- 6. 편집 모드에서 WebBrowser 컨트롤의 클릭 가능한 링크
- 7. 링크 된 요소 내부에서 클릭 가능한 sIFR
- 8. XpsDocument에 대한 클릭 가능한 링크 추가
- 9. Chrome 확장 프로그램에서 클릭 가능한 링크 클릭을 잡는 방법?
- 10. 버튼을 기반으로 레일에 루비가있는 텍스트 블록을 표시하거나 숨기는 방법 클릭 또는 링크 클릭
- 11. iPhone SDK의 스크롤 가능하고 클릭 가능한 텍스트
- 12. Linkify의 클릭 가능한 메서드 블록 listview 클릭 방법
- 13. WPF : 텍스트 블록의 텍스트 부분을 장식하는 가장 좋은 방법
- 14. 선택 가능한 텍스트/링크 위에 절대적으로 위치한 div
- 15. WP7에서 전체 배경 이미지/색상 설정
- 16. 인라인 블록의 텍스트 가운데 맞추기
- 17. 설정 텍스트
- 18. QTextEdit에서 텍스트 블록의 가시성을 설정하는 방법은 무엇입니까?
- 19. LaTeX - PDF 문서로 섹션/하위 섹션에 클릭 가능한 링크 추가
- 20. Java : 텍스트 URL을 클릭 가능한 HTML 링크로 대체
- 21. 데이터 테이블이있는 클릭 가능한 행
- 22. JTable 클릭 가능한 열 헤더
- 23. 사용자 등록 방법 링크 광고 클릭
- 24. 안드로이드에서 클릭 가능한 영역으로 청사진을 표현하는 방법
- 25. UITableView 클릭 가능한 링크를 만드는 방법
- 26. PHP 링크 클릭 카운터
- 27. 링크 클릭 수 추적
- 28. UIWebView 링크 클릭
- 29. 링크 집계 클릭
- 30. 버튼 클릭 가능한 영역
전체 예제로 업데이트되었습니다. –
7.1을 사용하고 있는데,이 xaml은 컴파일되지 않습니다. – Nathan
먼저 '하이퍼 링크', 'l'은 소문자이어야합니다. 둘째, 7.1 프로젝트에서 컴파일 할 xaml 코드를 가져올 수 없습니다. –