有效的选框文本控制
本文关键字:文本 控制 有效 | 更新日期: 2023-09-27 18:07:39
在我们的WPF应用程序中,我们需要一个简单的选框文本控件,它在性能方面轻量级且高效。我尝试用DoubleAnimation
这样做,但它使用了大量的资源(主要来自CPU)。我还尝试设置TextBlock的文本属性,并从每100纳秒开始删除一个字符。这也没有提高性能。
那么在WPF中设计选框文本控件的最佳和最有效的方法是什么呢?(我们使用的是。net 4.0)
感谢@Chris W.,这个问题是我最后想到的(我想要rtl语言的从左到右动画):
<Window x:Class="WpfApplication9.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication9"
Title="MainWindow" Height="83" Width="222">
<Grid x:Name="layoutRoot">
<Canvas x:Name="canvas">
<TextBlock Text="StackOverflow is just awesome!" FontSize="25" x:Name="tb1" Canvas.Left="-131" Loaded="tb1_Loaded">
<TextBlock.Resources>
<Storyboard x:Key="slide">
<DoubleAnimation From="0" To="{Binding Width, ElementName=tb1}" Duration="00:00:4"
Storyboard.TargetProperty="X"
Storyboard.TargetName="transferCurreny"
RepeatBehavior="Forever"/>
</Storyboard>
</TextBlock.Resources>
<TextBlock.RenderTransform>
<TranslateTransform x:Name="transferCurreny" X="0"/>
</TextBlock.RenderTransform>
<TextBlock.Triggers>
<EventTrigger RoutedEvent="TextBlock.Loaded">
<BeginStoryboard Storyboard="{StaticResource slide}" />
</EventTrigger>
</TextBlock.Triggers>
</TextBlock>
</Canvas>
</Grid>
</Window>
后台代码:
using System.Windows;
namespace WpfApplication9
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void tb1_Loaded(object sender, RoutedEventArgs e)
{
tb1.Width = tb1.ActualWidth;
}
}
}