2013-04-26 1 views
1

여기 내 코드는 Windows Phone 8 에뮬레이터에서 실행될 수 있습니다.페이드 인/아웃 애니메이션으로 인해 ScrollViewer의 콘텐츠가 흐리게 표시됩니다.

  • XAML :

    <Grid x:Name="ContentPanel"> 
        <ScrollViewer> 
         <StackPanel> 
          <Button Content="Sample Content" Click="ButtonBase_OnClick"> 
           <Button.Style> 
            <Style TargetType="Button"> 
             <Setter Property="Width" Value="400"></Setter> 
             <Setter Property="Height" Value="100"></Setter> 
             <Setter Property="HorizontalContentAlignment" Value="Center"></Setter> 
             <Setter Property="VerticalContentAlignment" Value="Center"></Setter> 
             <Setter Property="Template"> 
              <Setter.Value> 
               <ControlTemplate TargetType="Button"> 
                <Grid> 
                 <Border CornerRadius="10,10,10,10" 
                   Background="{StaticResource PhoneAccentBrush}" 
                   BorderBrush="#FF000000" BorderThickness="1,1,1,1" 
                   x:Name="border" RenderTransformOrigin="0.5,0.5"> 
                  <Border.RenderTransform> 
                   <TransformGroup> 
                    <ScaleTransform /> 
                    <SkewTransform /> 
                    <RotateTransform /> 
                    <TranslateTransform /> 
                   </TransformGroup> 
                  </Border.RenderTransform> 
                  <ContentPresenter x:Name="contentPresenter" 
                       ContentTemplate="{TemplateBinding ContentTemplate}" 
                       VerticalAlignment="Center" 
                       HorizontalAlignment="Center" /> 
                 </Border> 
                </Grid> 
               </ControlTemplate> 
              </Setter.Value> 
             </Setter> 
            </Style> 
           </Button.Style> 
          </Button> 
          <TextBlock TextWrapping="Wrap"> 
           Lorem ipsum Pariatur sint occaecat sunt sint do labore adipisicing 
           eiusmod incididunt culpa laborum consequat magna dolor labore sunt sed 
           ullamco anim adipisicing do pariatur ea esse qui sint magna in voluptate 
           Duis id ut anim id. 
          </TextBlock> 
         </StackPanel> 
        </ScrollViewer> 
    </Grid> 
    
  • C 번호 : 바로 지금, 컨텐츠의 높이가, "이 ContentPanel"라는 이름의 격자보다 작은 때문에 그렇게 할 때

private void ButtonBase_OnClick(object sender, RoutedEventArgs e) 
{ 
    var storyb = new Storyboard(); 
    Duration Show_Duration = new Duration(new TimeSpan(0, 0, 0, 0, 450)); 
    DoubleAnimation m_OpacityAni = new DoubleAnimation(); 
    m_OpacityAni.Duration = Show_Duration; 
    m_OpacityAni.From = 1.0; 
    m_OpacityAni.To = 0.0; 
    m_OpacityAni.AutoReverse = true; 

    storyb.Children.Add(m_OpacityAni); 

    Storyboard.SetTarget(m_OpacityAni, ContentPanel); 
    Storyboard.SetTargetProperty(m_OpacityAni, new PropertyPath("(UIElement.Opacity)")); 

    storyb.Begin(); 
} 
애니메이션이 시작되면 모든 내용이 희미 해지지 않고 페이드 인/아웃됩니다. 그러나 ScrollViewer를 더 길게 만들려면 해당 TextBlock을 복제 한 다음 (스크롤 가능하게 만들) 애니메이션을 다시 실행하십시오. 해당 내용은 끝날 때까지 흐리게 표시됩니다.

ScrollViewer 태그를 제거하면 모든 내용이 선명하게 표시됩니다.

하지만 나쁜 영향을 미치지는 않지만 왜 이렇게 표시되는지 알고 싶습니다.

답장을 보내주십시오. 감사!

답변

1

아마도 애니메이션 중에 ScrollViewer.CacheMode = CacheMode.BitmapCache을 설정했을 것입니다.

+0

어쩌면이 컨트롤에서 애니메이션을 사용할 때 내부에서 BitmapCache를 사용합니다. 그래서 그것은 흐릿 해 보입니다. – Eddie

관련 문제