Xaml 将超链接绑定到windows 8 Metro应用程序中的richtextblock
我正在构建一个windows 8 metro应用程序,用于娱乐/学习等。Xaml 将超链接绑定到windows 8 Metro应用程序中的richtextblock,xaml,windows-8,microsoft-metro,windows-runtime,Xaml,Windows 8,Microsoft Metro,Windows Runtime,我正在构建一个windows 8 metro应用程序,用于娱乐/学习等。 我已经创建了一个包含描述、图像等的文本项列表视图。在描述中,通常有我希望使其可单击的超链接 但是,当绑定到textblock时,xaml超链接代码显示为文本。在四周搜索时,看起来我需要使用richtextblock来创建超链接。我似乎不知道如何将超链接绑定到它。我从wpf中找到了许多示例,展示了如何使用flowdocument扩展richtextblock。框架的当前使用者预览版本中不存在Flowdocument 我正在寻
我已经创建了一个包含描述、图像等的文本项列表视图。在描述中,通常有我希望使其可单击的超链接 但是,当绑定到textblock时,xaml超链接代码显示为文本。在四周搜索时,看起来我需要使用richtextblock来创建超链接。我似乎不知道如何将超链接绑定到它。我从wpf中找到了许多示例,展示了如何使用flowdocument扩展richtextblock。框架的当前使用者预览版本中不存在Flowdocument 我正在寻求帮助,看看是否有人已经解决了这个问题,或者有什么建议可以走下去 编辑: 我目前拥有的代码 现在我只是将“文本”字段从我的状态对象绑定到“文本”上的textblock绑定 我有URL的文本字段,我想能够使点击 作为测试,我用超链接标记替换第一个对象的文本字段 前。 feed_结果[0]。text=“
{
ItemListView1.ItemsSource=feed\u结果;
}),此为空);
}
Microsoft从Metro XAML中删除了对内联超链接的支持。您仍然可以使用非内联超链接,或者如果您的内联超链接较短(1-2个字)然后,您可以将HyperlinkButton放置在RichTextBlock中InlineUIContainer的内部。稍后的解决方案需要一些代码,仅使用绑定是不行的。您可以向我们展示您当前拥有的代码吗?在WPF/Silverlight中,如果链接足够简单(仅一个文本或图像),我会使用HyperlinkButton.也许地铁里也有?(我手边没有VS11)。
<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);
}