2

垂直プログレス バーとアニメーション オブジェクトの両方を使用するプロジェクトがあります。

問題: 希望どおりのアニメーション化 (幅と高さを同時に変更) は、.NET Framework 4 では機能しませんが、3.5 では機能します。ただし、垂直のプログレス バーは Framework 4 では機能しますが、3.5 では機能しません。

私が求めているのは、コードの両方のセクションを見て、どちらか/任意の .NET Framework で動作するように別の方法でいずれかのアクションをコーディングすることで、回避策を提案してくれる人がいるということです。

まず、これが私の垂直プログレス バー XAML です。

<ControlTemplate TargetType="ProgressBar" x:Key="ProgressBarWin">
        <Border
                        x:Name="Root"
                        BorderBrush="#BBC6C4"
                        BorderThickness="1" 
                        Padding="1">
            <Grid x:Name="PART_Track">
                <Rectangle
                        x:Name="PART_Indicator"
                        Fill="#6cd133"
                        RadiusX="5"
                        RadiusY="5"
                        HorizontalAlignment="Left" />
            </Grid>
        </Border>

        <ControlTemplate.Triggers>
                        <Trigger Property="Orientation" Value="Vertical">
                            <Setter TargetName="Root" Property="LayoutTransform">
                                <Setter.Value>
                                    <RotateTransform Angle="270" />
                                </Setter.Value>
                            </Setter>

                            <Setter TargetName="Root" Property="Width"
                Value="{Binding RelativeSource={RelativeSource TemplatedParent}, 
Path=Height}"/>
                            <Setter TargetName="Root" Property="Height"
                Value="{Binding RelativeSource={RelativeSource TemplatedParent}, 
Path=Width}"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>

そして今、これが XAML で開くウィンドウのストーリーボードです。

<Window.Triggers>
    <EventTrigger RoutedEvent="Window.Loaded">
        <BeginStoryboard>
        <Storyboard>
                <DoubleAnimation Storyboard.TargetProperty="(Window.Height)" 
From="0" To="300" BeginTime="0:0:0" Duration="0:0:2"/>
                <DoubleAnimation Storyboard.TargetProperty="(Window.Width)" 
From="0" To="300" BeginTime="0:0:0" Duration="0:0:2"/>
            </Storyboard>
        </BeginStoryboard>
    </EventTrigger>
</Window.Triggers>
4

0 に答える 0