2

一部のテキスト (別名、WPF Run オブジェクト) にフェードイン/アウト効果を追加したいと考えています。Bold/notBold を一度に切り替えたくありません。太字と通常の間でアニメーション化してほしい。これは可能ですか?

4

1 に答える 1

2

フォントウェイトは「中間」状態を持たない固定値のようなものであるため、フォントウェイト間でアニメーション化できるとは思いません。最善の策は、2 つのテキストブロック (同じテキストを持つノーマルとボールド) を用意し、両方の不透明度をアニメートして、ノーマルをフェードアウトさせ、ボールドをフェードインさせることだと思います。この方法では、フォントのように見えます。通常から太字にアニメーションで「移行」しています。

<Control>
            <Control.Template>
                <ControlTemplate>
                    <DockPanel>
                        <ToggleButton x:Name="btn" Content="IsBold"/>
                        <Grid Width="200">
                            <TextBlock Text="Transition" x:Name="normal" TextAlignment="Center"/>
                            <TextBlock Text="Transition" FontWeight="Bold" Opacity="0" x:Name="bold" TextAlignment="Center"/>
                        </Grid>
                    </DockPanel>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsChecked" SourceName="btn" Value="True">
                            <Trigger.EnterActions>
                                <BeginStoryboard>
                                    <Storyboard Duration="00:00:01">
                                        <DoubleAnimation Storyboard.TargetName="normal" Storyboard.TargetProperty="Opacity" To="0"/>
                                        <DoubleAnimation Storyboard.TargetName="bold" Storyboard.TargetProperty="Opacity" To="1"/>
                                    </Storyboard>
                                </BeginStoryboard>
                            </Trigger.EnterActions>
                            <Trigger.ExitActions>
                                <BeginStoryboard>
                                    <Storyboard Duration="00:00:01">
                                        <DoubleAnimation Storyboard.TargetName="normal" Storyboard.TargetProperty="Opacity" To="1"/>
                                        <DoubleAnimation Storyboard.TargetName="bold" Storyboard.TargetProperty="Opacity" To="0"/>
                                    </Storyboard>
                                </BeginStoryboard>
                            </Trigger.ExitActions>
                        </Trigger>
                    </ControlTemplate.Triggers>



                </ControlTemplate>
            </Control.Template>
        </Control>
于 2012-10-30T19:02:18.763 に答える