我希望能够像在 WPF 的网页中一样有一些可点击的文本。该控件应该既具有非功能性文本(用于显示),也应具有完全可单击的某些部分。
像维基百科一样说。
但这是一个独立的独立离线应用程序。
我尝试了各种各样的东西,但我做不到,尤其是单击不像网页那样起作用,即单击以打开工具中包含的 url。
您应该尝试手动设置流程文档并在流程文档中创建超链接...
以下是来自以下链接的一些文本:http: //social.msdn.microsoft.com/Forums/en-US/wpf/thread/99ae9d9c-1dd4-4acd-8d5d-6eb739adeb98
“ 你好,
有可能的。这是一个创建到段落/部分/表格的超链接的小示例。
为了导航到网站,我们可以创建一个框架控件进行导航。这个例子中元素的层次关系是这样的:
Frame-->FlowDocument-->Table-->Section-->Paragraph-->Hyperlink
在后面的代码中:
public Window1()
{
InitializeComponent();
// add a Frame for navigation
Frame frame = new Frame();
this.Content = frame;
//add FlowDocument
FlowDocument doc = new FlowDocument();
frame.Navigate(doc);
//add Table
Table table = new Table();
doc.Blocks.Add(table );
TableRowGroup group = new TableRowGroup();
table.RowGroups.Add(group );
TableColumn col1 = new TableColumn();
TableColumn col2 = new TableColumn();
table.Columns.Add(col1 );
table.Columns.Add(col2);
TableRow row1 = new TableRow();
TableCell cel1 = new TableCell();
row1.Cells.Add(cel1);
group.Rows.Add(row1);
//add Section
Section mySection = new Section();
//add section to the Table cell.
cel1.Blocks.Add(mySection);
Paragraph paraValue = new Paragraph();
Hyperlink hl = new Hyperlink(new Run("Click Here to Google"));
hl.Foreground = Brushes.Red;
paraValue.Inlines.Add(hl);
hl.FontSize = 11;
hl .NavigateUri =new Uri ("Http://www.google.cn");
mySection.Blocks.Add(paraValue);
}
如果您对此有任何其他问题,请随时提出。
谢谢。"
如果您不要求它是一个成熟的 FlowDocument,那么您可以只使用一个普通的旧 WPF TextBlock,并将超链接放入其中。
<TextBlock>
Here's some text with a
<Hyperlink NavigateUri="Page2.xaml">link to another XAML page</Hyperlink>
and a
<Hyperlink NavigateUri="http://msdn.microsoft.com/">link to the
Web</Hyperlink>.
</TextBlock>
如果您需要滚动,只需在其周围放置一个 ScrollViewer。
如果您需要分页的多列查看器,那么您需要使用完整的 FlowDocument,但如果您想要的只是带有超链接的文本,那么您只需要 TextBlock + Hyperlink。