0

StoryBoard に DoubleAnimation を持つ TextBlock を用意します。
Windows 7の場合 - 常に1 ~ 2%の CPU 使用率。
Windows XP SP3の場合 - 10 ~ 15%の CPU 使用率。

<TextBlock Grid.Column="1" Height="Auto" Margin="10,0,0,0" TextWrapping="Wrap" HorizontalAlignment="Left" VerticalAlignment="Center" PreviewMouseDown="incomMessages_SelectionChanged">
     <TextBlock.Text>
          <Binding Mode="OneTime" Converter="{StaticResource Converter}" ConverterParameter="NameAndId"/>
     </TextBlock.Text>
     <TextBlock.Style>
          <Style>    
               <Style.Triggers>
                    <DataTrigger Binding="{Binding IsNew}" Value="True">
                         <DataTrigger.EnterActions>
                              <BeginStoryboard Name="Blink">
                                   <Storyboard BeginTime="00:00:01" RepeatBehavior="Forever">
                                        <DoubleAnimation Storyboard.TargetProperty="(TextBlock.Opacity)" From="0" To="1" Duration="0:0:1" RepeatBehavior="Forever" AutoReverse="True"/>
                                    </Storyboard>
                               </BeginStoryboard>
                          </DataTrigger.EnterActions>
                     </DataTrigger>
                </Style.Triggers>
           </Style>
     </TextBlock.Style>
</TextBlock>

私は何か間違ったことをしていますか、それともWPF機能ですか?

4

1 に答える 1

0

RenderCapability.Tierプロパティを確認できます。現在のスレッドのレンダリング層を示します

RenderCapability.Tier = 0これは、デバイス上のアプリケーションで使用できるグラフィックス ハードウェア アクセラレーションがないことを意味します。すべてのグラフィックス機能は、ソフトウェア アクセラレーションを使用します。

RenderCapability.Tier0 の場合、Storyboard.DesiredFrameRate プロパティを変更できます。デフォルト値は 60 ですが、Windows XP ではそれよりも低く設定できます。

方法については、こちらをご覧ください

于 2012-10-30T08:04:27.330 に答える