在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的内联超链接的支持。 您仍然可以使用HyperlinkBut​​ton作为非内联超链接,或者如果内联超链接短(1-2个字),则可以将HyperlinkBut​​ton放入RichTextBlock中的InlineUIContainer中。 后来的解决方案需要一些代码,只是使用绑定不会这样做。

链接地址: http://www.djcxy.com/p/67377.html

上一篇: Binding Hyperlink to richtextblock in windows 8 Metro app

下一篇: CSS/HTML: What is the correct way to make text italic?