gpt4 book ai didi

silverlight - 如何使用数据绑定(bind)的内容/文本为 HyperlinkBut​​ton 设置换行?

转载 作者:行者123 更新时间:2023-12-04 14:35:13 24 4
gpt4 key购买 nike

我将一个集合(rss 提要)绑定(bind)到一个列表框中,例如:

<ListBox Margin="0,0,-12,0" ItemsSource="{Binding Items}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Margin="0,0,0,17" Width="432">
<HyperlinkButton Content={Binding Title} NavigateUri="{Binding Link}" />
<TextBlock Text="{Binding Description}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>

这很好用 - 数据显示正确等。但是现在当我将其更改为使用文本换行时,标题不再显示。

这是有问题的代码。
<ListBox Margin="0,0,-12,0" ItemsSource="{Binding Items}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Margin="0,0,0,17" Width="432">
<HyperlinkButton NavigateUri="{Binding Link}">
<TextBlock Text="{Binding Title}" TextWrapping="Wrap" />
</HyperlinkButton>
<TextBlock Text="{Binding Description}" TextWrapping="Wrap" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>

我不认为这是导致问题的“TextWrapping”属性,因为我尝试不使用它但它仍然无法正常工作。所以我的问题是你如何让这样的事情发挥作用?我只想显示一个带有包装的绑定(bind)文本的超链接。这看起来是一件相当简单的事情 - 但又是如此困难。帮助?

最佳答案

我遇到了完全相同的问题,直到遇到 this blog,我才明白为什么它不起作用由 Mister Goodcat 发布.在他的帖子中,他说由于 Silverlight 中为 WP7 所做的一些优化,在普通 Silverlight 中工作的基本功能在 WP7 Silverlight 中无法正常工作。他建议修改样式而不是使用。

The easiest way to edit the default templates still is to use Expression Blend to make a copy of it and work from there. When you do that you'll see that the template really only has a text block to show the content. That is why using another UI element as content doesn't work for the hyperlink button on WP7. If you only want to make the text wrap, it's sufficient to change the TextWrapping property on that text block.


<Style x:Key="HyperlinkButtonWrappingStyle"
TargetType="HyperlinkButton">
<Setter Property="Foreground"
Value="{StaticResource PhoneForegroundBrush}" />
<Setter Property="Background"
Value="Transparent" />
<Setter Property="FontSize"
Value="{StaticResource PhoneFontSizeMedium}" />
<Setter Property="Padding"
Value="0" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="HyperlinkButton">
<Border Background="Transparent">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal" />
<VisualState x:Name="MouseOver" />
<VisualState x:Name="Pressed">
<Storyboard>
<DoubleAnimation Duration="0"
To="0.5"
Storyboard.TargetProperty="Opacity"
Storyboard.TargetName="TextElement" />
</Storyboard>
</VisualState>
<VisualState x:Name="Disabled">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground"
Storyboard.TargetName="TextElement">
<DiscreteObjectKeyFrame KeyTime="0"
Value="{StaticResource PhoneDisabledBrush}" />
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Border Background="{TemplateBinding Background}"
Margin="{StaticResource PhoneHorizontalMargin}"
Padding="{TemplateBinding Padding}">
<TextBlock x:Name="TextElement"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
Text="{TemplateBinding Content}"
TextDecorations="Underline"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
TextWrapping="Wrap" />
</Border>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

我建议阅读他的博客文章以获取更多信息和帮助。

关于silverlight - 如何使用数据绑定(bind)的内容/文本为 HyperlinkBut​​ton 设置换行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4196097/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com