在Windows 8 Metro应用程序中将超链接绑定到richtextblock
我正在构建一个用于娱乐/学习等的Windows 8地铁应用程序。
我创建了一个包含描述,图像等的文本项目的列表视图。在描述内部,我经常会有超链接让我点击。
但是,绑定到文本块时,xaml超链接代码将显示为文本。 搜索周围,它看起来像我需要使用richtextblock超链接。 我似乎无法弄清楚如何将超链接绑定到它。 我从wpf中发现了很多示例,展示了如何使用flowdocument扩展richtextblock。 Flowdocument在框架的当前使用者预览版本中不存在。
我正在伸出手去查看是否有人解决了这个问题,或者有什么建议来决定采取什么措施。
编辑:我目前有的代码
现在我只是将我的状态对象中的“文本”字段绑定到“文本”上的文本块绑定,
我希望能够点击文本字段中的URL。
作为一个测试,我用超链接标记替换了第一个对象的文本字段
恩。 feed_results [0] .text =“ <hyperlink .....
然后尝试绑定到texblock和richtextblock
XAML
<ListView x:Name="ItemListView" ItemsSource="{Binding}" Background="Black" Width="372" VerticalAlignment="Top" Margin="50,0,0,0">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" MinHeight="100">
<StackPanel Orientation="Horizontal">
<Image Source="{Binding user.profile_image_url}" Margin="0,0,15,0" VerticalAlignment="Top" />
<StackPanel Orientation="Vertical">
<TextBlock HorizontalAlignment="Left" Foreground="Gray" Text="{Binding user.name}" FontWeight="Bold" TextWrapping="Wrap" MaxWidth="200" />
<TextBlock HorizontalAlignment="Left" Foreground="Gray" Text="{Binding text}" TextWrapping="Wrap" MaxWidth="200" />
</StackPanel>
</StackPanel>
<StackPanel Margin="0,15,0,0" HorizontalAlignment="Right">
<TextBlock Text="{Binding created_at, Converter={StaticResource StringConverter},ConverterParameter=Released: {0:d}}" HorizontalAlignment="Center" Foreground="Gray" />
</StackPanel>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
后端代码
FeedResult<Statuses> r2 = await feed.StatusesAsync(1, 50);
if (!r2.HasError)
{
feed_results = r2.Result;
Dispatcher.Invoke(Windows.UI.Core.CoreDispatcherPriority.High, new Windows.UI.Core.InvokedHandler((o, a) =>
{
ItemListView1.ItemsSource = feed_results;
}), this, null);
}
微软取消了对Metro XAML的内联超链接的支持。 您仍然可以使用HyperlinkButton作为非内联超链接,或者如果内联超链接短(1-2个字),则可以将HyperlinkButton放入RichTextBlock中的InlineUIContainer中。 后来的解决方案需要一些代码,只是使用绑定不会这样做。
链接地址: http://www.djcxy.com/p/67377.html上一篇: Binding Hyperlink to richtextblock in windows 8 Metro app