2

を使用していますProgressBarが、そのテーマを変更すると、見た目が異なります。

次のように、Windows テーマをパーソナライズ オプション (つまり、デスクトップで右クリック) から Windows クラシック テーマ (つまり、基本およびハイ コントラスト テーマ) に変更しました。

<StackPanel VerticalAlignment="Center" HorizontalAlignment="Center"
            Background="Transparent">
    <ProgressBar IsIndeterminate="True" Height="20" Width="300"
                 VerticalAlignment="Center" BorderThickness="0"
                 BorderBrush="Transparent" HorizontalAlignment="Center"
                 Foreground="#0A8098" >
        <ProgressBar.Background>
            <ImageBrush ImageSource="/ClientApplication;component/Images/ProgressBackground.png"/>
        </ProgressBar.Background>
        <ProgressBar.Clip>
            <RectangleGeometry RadiusX="20.5" RadiusY="20.5" Rect="0,0,300,19"/>
        </ProgressBar.Clip>
    </ProgressBar>

    <TextBlock Text="LOADING PLEASE WAIT" Margin="0 10 0 0" VerticalAlignment="Center"
               HorizontalAlignment="Center" Foreground="#FFFFFF" />
</StackPanel>

と画像:

古典的なテーマ

次に、Windows のクラシック テーマを Windows 7 (つまり、Aero テーマ) に再度変更します。

エアロのテーマ

しかし、私は最初のものと同じようにしたいのですが、影響やテーマの変更はありません。

どうすればいいですか?ありがとう。

4

1 に答える 1

1

ProgressBarWindows テーマに依存します。独自の進行状況バーを作成し、必要に応じて表示/非表示にすることができます。

唯一の欠点は、進行状況のパーセンテージに関連付けるには、いくつかのロジックを手動で記述する必要があることです。

WPF を使用すると、独自のプログレス バーを描画して、好きなようにアニメーション化できます。

<Rectangle Name="LoadingRectangle" Stroke="Black" Fill="#C0000000" Visibility="{Binding Path=LoadingIcon}" />
<Canvas Name="LoadingIcon" RenderTransformOrigin="0.5,0.5" Width="120" Height="120" Visibility="{Binding Path=LoadingIcon}" >     

<Ellipse Width="19.5" Height="19.5" Canvas.Left="20.1696" Canvas.Top="9.76358" Stretch="Fill" Fill="DarkGoldenrod"/>        
<Ellipse Width="18" Height="18" Canvas.Left="2.86816" Canvas.Top="29.9581" Stretch="Fill" Fill="DarkGoldenrod" OpacityMask="#E9000000" />        
<Ellipse Width="17" Height="17" Canvas.Left="5.03758e-006" Canvas.Top="57.9341" Stretch="Fill" Fill="DarkGoldenrod" OpacityMask="#E1000000" />         
<Ellipse Width="16" Height="16" Canvas.Left="12" Canvas.Top="85" Stretch="Fill" Fill="DarkGoldenrod" OpacityMask="#D2000000" />         
<Ellipse Width="15" Height="15" Canvas.Left="37" Canvas.Top="102" Stretch="Fill" Fill="DarkGoldenrod" OpacityMask="#BC000000" />         
<Ellipse Width="14" Height="14" Canvas.Left="66" Canvas.Top="101" Stretch="Fill" Fill="DarkGoldenrod" OpacityMask="#9C000000" />         
<Ellipse Width="13" Height="13" Canvas.Left="91" Canvas.Top="86" Stretch="Fill" Fill="DarkGoldenrod" OpacityMask="#7B000000" />         
<Ellipse Width="11" Height="11" Canvas.Left="106" Canvas.Top="65" Stretch="Fill" Fill="DarkGoldenrod" OpacityMask="#49000000" />         
<Ellipse Width="10" Height="10" Canvas.Left="104" Canvas.Top="39" Stretch="Fill" Fill="DarkGoldenrod" OpacityMask="#27000000" />         
<Ellipse Width="21.835" Height="21.862" Canvas.Left="47.2783" Canvas.Top="0.5" Stretch="Fill" Fill="DarkGoldenrod"></Ellipse>

<Canvas.RenderTransform>         
<RotateTransform x:Name="SpinnerRotate" Angle="0" />         
</Canvas.RenderTransform>         
<Canvas.Triggers>

<EventTrigger RoutedEvent="ContentControl.Loaded">         
<BeginStoryboard>         
<Storyboard>   

<DoubleAnimation Storyboard.TargetName="SpinnerRotate" Storyboard.TargetProperty="(RotateTransform.Angle)" From="0" To="360" Duration="0:0:01" RepeatBehavior="Forever" />  

</Storyboard>         
</BeginStoryboard>         
</EventTrigger>         
</Canvas.Triggers>         
</Canvas>
于 2013-03-20T20:36:17.887 に答える