Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > подергивание DoubleAnimation


Автор: DenisT 19.5.2010, 10:51
Нужен контрол, который эмулирует бегущую строку. Написал самостоятельно, однако бегущая строка заметно "подергивается". Нашел реализацию этого контрола http://www.vectorlight.net/ (контрол называется Scroller), но он также "дергается". Подскажите, как победить проблему с подергиванием или где найти бегущую строку, которая не дергается.

Код

<Canvas MouseLeftButtonDown="Canvas_MouseLeftButtonDown" Background="#FF9BF2A8" x:Name="Canvas">
        <Canvas.Resources>
            <Storyboard x:Name="myStoryboard">
                <DoubleAnimation x:Name="Animation" Storyboard.TargetName="myTranslateTransform" Storyboard.TargetProperty="X" RepeatBehavior="Forever" />
            </Storyboard>
        </Canvas.Resources>

        <TextBlock Text="this is text" FontSize="50" x:Name="CreepingTextBlock">
            <TextBlock.RenderTransform>
                <TranslateTransform x:Name="myTranslateTransform" />
            </TextBlock.RenderTransform>    
        </TextBlock>        
    </Canvas>

Код

        private void Canvas_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            Animation.From = Canvas.ActualWidth;
            Animation.To = -CreepingTextBlock.ActualWidth;
            Animation.Duration = new Duration(TimeSpan.FromSeconds(20));
            myStoryboard.Begin();
        }




Автор: Partizan 20.5.2010, 13:18
DenisT, <DoubleAnimation x:Name="Animation" Storyboard.TargetName="myTranslateTransform" Storyboard.TargetProperty="X" RepeatBehavior="Forever" Timeline.DesiredFrameRate="180" />

Автор: DenisT 21.5.2010, 06:56
За наводку спасибо, но я забыл одно уточнение - контрол нужен на Silverlight, а там у класса Timeline нет свойства DesiredFrameRate.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)