2013-12-03 5 views
0

У меня есть сетка с 3 колонками. Я хочу прокрутить длинный текст, который я обновляю, используя тикер во второй колонке. Я попробовал textblock, но если мой текст не вписывается, он сократит мою строку. Можете ли вы порекомендовать мне что-то сделать.Гладкий текст прокрутки в столбце сетки wpf

Мой код будет выглядеть так:

Вот три столбца.

<Grid.ColumnDefinitions> 
         <ColumnDefinition Width="120"></ColumnDefinition> 
         <ColumnDefinition Width="2*"></ColumnDefinition> 
         <ColumnDefinition Width="*"></ColumnDefinition> 
        </Grid.ColumnDefinitions> 

Объект TextBlock, который я обновляю

    <TextBlock Name="SongTitle" Text="Now onair:" FontSize="20" VerticalAlignment="Center" HorizontalAlignment="Center" Grid.Column="1" TextWrapping="NoWrap"> 
        <TextBlock.RenderTransform> 
         <TranslateTransform x:Name="translate" /> 
        </TextBlock.RenderTransform> 
        <TextBlock.Triggers> 
         <EventTrigger RoutedEvent="FrameworkElement.Loaded"> 
          <BeginStoryboard> 
           <Storyboard RepeatBehavior="Forever"> 

Вот некоторые проблемы, он начинает прокручивать не от края колонны ...

<DoubleAnimation 
          From="300" To="0" 
          Storyboard.TargetName="translate" 
          Storyboard.TargetProperty="X" 
          Duration="0:0:8" /> 
           </Storyboard> 
          </BeginStoryboard> 
         </EventTrigger> 
        </TextBlock.Triggers> 
        </TextBlock> 

ответ

0

Начнем с того, вместо того, чтобы использовать a Grid, вы должны использовать ScrollViewer. Чтобы скрыть полосы прокрутки, установите HorizontalScrollBarVisibility и VerticalScrollBarVisibility в Hidden. Затем вы можете обрабатывать события колесика мыши с помощью кода, чтобы пользователь не мог вручную прокручивать текст.

Конечно, также возможно использовать Grid, но это даст вам кучу головных болей.

Чтобы ответить на ваш первоначальный вопрос, вы должны использовать LayoutTransform вместо RenderTransform.

Смежные вопросы