我正试图在屏幕上滚动文本,它工作得很好。
更新
:我仍然无法解决问题,现在可以在我的Live应用程序上演示:
-
去
http://www.pokerdiy.com/poker-blinds-timer.aspx
不全屏显示。
-
点击顶部的“计时器”选项卡。
然后点击“开始锦标赛”。AT
顶部,滚动消息将
从右边出现。在我的显示器上
(22英寸)-这会在它之前切断
完成了句子。
-
然后右键单击可调整为完全
然后重新开始比赛
然后重新开始显示相同的内容
消息。你现在就知道了
作品!
这是一个大问题,因为我想在顶部滚动长消息…有什么想法吗?
问题摘要:
我在屏幕右侧有一个文本块,它没有设置宽度,并且绑定到一个字符串值。我程序化地启动一个动画,在compositeTransform.translateX上更改“从”和“到”的值,以便在屏幕上移动整个文本块,以显示滚动的外观。这个文本块的宽度会自动调整为绑定字符串的值,我将其设置为动画值(负值),这样它就可以从屏幕的左侧(参见下面的代码)。
所以这一切都是梦幻般的…但不是长信息。似乎有一个宽度限制截断我的文本。在某一点上,它以一个宽度限制(最后一个字符呈现为半个字符,因此它不是字符限制)。我设置了一个循环来创建一个大字符串并输出文本块的实际宽度,它显示为17000(正确)。宽度也很好,实际的文本属性显示完整的字符串…但是用户界面在某一点截短了它,我不知道。
所以-1)这种方法可以吗(有更简单的方法吗?)2)什么导致了截断?
谢谢!
XAML:
<Storyboard x:Name="StoryboardScrollText" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)">
<DoubleAnimation x:Name="StoryboardScrollTextAnimation" Storyboard.TargetName="txtSystemMessage" From="500" To="-740" Duration="0:0:30" />
</Storyboard>
<TextBlock x:Name="txtSystemMessage" TextWrapping="NoWrap" Text="{Binding TourneyMessage}" Foreground="White" FontSize="20" VerticalAlignment="Center" >
<TextBlock.RenderTransform>
<CompositeTransform TranslateX="0"/>
</TextBlock.RenderTransform>
</TextBlock>
代码:
mainPage.StoryboardShowTourneyMessage.Begin();
//has to scroll the whole message off the screen (plus a bit extra as it starts off the screen)
//get the leftmost position of the logo so it starts just behind it
mainPage.StoryboardScrollTextAnimation.From = GetPositionX(mainPage.NavigationGridLogo);
mainPage.StoryboardScrollTextAnimation.To = mainPage.txtSystemMessage.ActualWidth * -1 - 50;
mainPage.StoryboardScrollText.Begin();
MessageBox.Show(mainPage.txtSystemMessage.ActualWidth.ToString() + " " + mainPage.txtSystemMessage.Width.ToString());