刚学WPF,现在想实现以下功能:
如,有3行文字,实现上翻,每次显示一条内容。请高手指点以下,最好给个代码。
如,有3行文字,实现上翻,每次显示一条内容。请高手指点以下,最好给个代码。
解决方案 »
- C#文件保存问题
- C# 打不开项目文件,提示“选择的文件不是有效的解决方案文件”?非常感谢!
- C# datalist控件能否这样使用?请大家看下,在线等!!
- 关于ToolBar.buttons的可视编辑属性问题,winform 神人进
- 50分求站内、外搜索思路~~~~~~~(跟者有分, 不够再加)
- c# 关于找图问题 -------问题代码 求修改 求解 F5 已烂
- C#连接Access怎么连呢?
- C#中怎么画PIXLE的图啊?麻烦拨冗赐教,很急!
- VS.NET英文版的CD-KEY (100分)
- 讨论:用C#实现多线程多页面的IE浏览器(netscaptor)的设计。
- 有什么开放平台支持C#,silverlight吗?
- dataTable中选择部分行后,想COPY出这些选中的行.
代码还是留给你自己写吧
每过一段时间改变下texblock.text
帮我看看哪里有问题。谢谢了。 <Canvas x:Name="a" VerticalAlignment="Top" Background="Black">
<Canvas.Clip>
<RectangleGeometry RadiusX="0" RadiusY="0" Rect="50,50, 300,24" />
</Canvas.Clip>
<Canvas.Triggers>
<EventTrigger RoutedEvent="Canvas.Loaded" >
<BeginStoryboard>
<Storyboard x:Name="animation" Storyboard.TargetProperty="(Canvas.Top)" RepeatBehavior="Forever" >
<DoubleAnimation Storyboard.TargetName="txt1" From="60" To="14" Duration="0:0:10" />
</Storyboard>
</BeginStoryboard>
<BeginStoryboard>
<Storyboard x:Name="animation2" Storyboard.TargetProperty="(Canvas.Top)" RepeatBehavior="Forever" >
<DoubleAnimation Storyboard.TargetName="txt2" From="60" To="14" Duration="0:0:10" BeginTime="0:0:5" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Canvas.Triggers>
<TextBlock x:Name="txt1" FontSize="36" Foreground="Green" Text="111111111111" Width="250" Height="40"/>
<TextBlock x:Name="txt2" FontSize="36" Foreground="Green" Text="222222222222" Width="250" Height="40"/>
</Canvas>
<Canvas VerticalAlignment="Top" Height="46" ClipToBounds="True">
<StackPanel Name="content1">
<StackPanel.RenderTransform>
<TranslateTransform Y="0" />
</StackPanel.RenderTransform>
<TextBlock FontSize="36" Foreground="Green" Text="111111111111" />
<TextBlock FontSize="36" Foreground="Green" Text="222222222222" />
<TextBlock FontSize="36" Foreground="Green" Text="333333333333" />
</StackPanel>
<Canvas.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation From="0" To="-138" Duration="0:0:5"
RepeatBehavior="Forever"
Storyboard.TargetName="content1"
Storyboard.TargetProperty="RenderTransform.Y" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Canvas.Triggers>
</Canvas>
还是只画几个TextBlock ,然后动态修改其内容啊。
另外顶nonocast大牛
互相学习
在后台往content1里面加TextBlock即可
遇到一个问题,就是有没有办法根据读到的内容,让lable自动调整宽度。我好设置from 和 to 啊,让这段文字能刚好跑完。 我现在的做法是 取得文字的 字节数 * 字体大小 来设置lable宽度。这样不准啊。
有没有 AoutSize 一样的属性啊。 或者怎么能计算出lable的宽度啊。
<Label Height="32" Background="Red" HorizontalAlignment="Left" Name="marquee" VerticalAlignment="Top" Width="{Binding Path=ActualWidth}">
<Label.RenderTransform>
<TranslateTransform x:Name="lab"/>
</Label.RenderTransform>
</Label >
<Button Content="Button" Height="30" HorizontalAlignment="Left" Margin="60,203,0,0" Name="button1" VerticalAlignment="Top" Width="138" Click="button1_Click" />
</Grid> public void run()
{
this.marquee.Content = "!啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊!";
int intRuntime = 10; DoubleAnimation animation = new DoubleAnimation();
animation.Duration = TimeSpan.FromSeconds(intRuntime);
animation.From = this.marquee.ActualWidth;
animation.To = -this.marquee.ActualWidth;
Storyboard.SetTargetName(animation, "lab");
Storyboard.SetTargetProperty(animation, new PropertyPath(TranslateTransform.XProperty)); story.Duration = TimeSpan.FromSeconds(intRuntime);
story.Children.Add(animation); story.RepeatBehavior = RepeatBehavior.Forever;
story.Begin(this);
} private void button1_Click(object sender, RoutedEventArgs e)
{
run();
}