Windows 窗体应用程序中的进度条具有标准的“闪耀”动画,但是当我尝试在 WPF 中添加进度条时,默认情况下我没有得到这样的东西。我们如何在 Windows 8 中使用 WPF 恢复这一点?
Windows 窗体
WPF
Windows 窗体应用程序中的进度条具有标准的“闪耀”动画,但是当我尝试在 WPF 中添加进度条时,默认情况下我没有得到这样的东西。我们如何在 Windows 8 中使用 WPF 恢复这一点?
Windows 窗体
WPF
这是一个相当奇怪的修复,但您需要在应用程序中启用 Windows 窗体样式才能使用“光泽度”。这就是我的做法。
System.Windows.Forms
View Application Events
Application.Startup
(在 VB.NET,C# 中类似)(另外,如果您需要包含参数,请执行此操作)Class Application
' Application-level events, such as Startup, Exit, and DispatcherUnhandledException
' can be handled in this file.
Private Sub Application_Startup() Handles Me.Startup
System.Windows.Forms.Application.EnableVisualStyles()
End Sub
End Class
您必须调用它才能使WPF进度条正常工作,这似乎很奇怪,但代码对我有用。
如果您想最终控制外观(即指示器的颜色),我已经调整了我在另一篇 SO 帖子中找到的控件,它提供了几乎相同的显示。
调整:
<Grid Background="LightGray">
<Grid Width="{Binding ProgressBarWidth, ElementName=uc}" HorizontalAlignment="Left">
<Grid.Triggers>
<EventTrigger RoutedEvent="Rectangle.Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Background.(GradientBrush.GradientStops)[1].(GradientStop.Offset)" From="-1" To="0" Duration="0:0:1.5" RepeatBehavior="Forever"/>
<DoubleAnimation Storyboard.TargetProperty="Background.(GradientBrush.GradientStops)[2].(GradientStop.Offset)" From="0" To="1" Duration="0:0:1.5" RepeatBehavior="Forever"/>
<DoubleAnimation Storyboard.TargetProperty="Background.(GradientBrush.GradientStops)[3].(GradientStop.Offset)" From="1" To="2" Duration="0:0:1.5" RepeatBehavior="Forever"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Grid.Triggers>
<Grid.Background>
<LinearGradientBrush>
<GradientStop Color="#FF218ED6" Offset="0.0" />
<GradientStop Color="#FF4BA5E0" Offset="0.4" />
<GradientStop Color="#FF8ECCF5" Offset="0.5" />
<GradientStop Color="#FF4BA5E0" Offset="0.6" />
<GradientStop Color="#FF218ED6" Offset="1.0" />
</LinearGradientBrush>
</Grid.Background>
</Grid>
</Grid>
全面实施:
WPF 中的进度条样式是老式的。酒吧的增量。如何实现具有 vista 或 windows-7 阴影发光效果的进度条?
预览:
Milliron X 的回答对我没有帮助,所以我不得不使用 Windows 窗体ProgressBar
,而不是使用自定义控件重新发明轮子。
为达到这个:
WindowsFormsIntegration
和System.Windows.Forms
程序集的引用。将以下命名空间添加到Window
元素
xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
添加ProgressBar
到WindowsFormsHost
控制。例如
<WindowsFormsHost Margin="0,10,0,0">
<wf:ProgressBar x:Name="DownloadProgressBar" Width="500" Height="50" />
</WindowsFormsHost>
为了让我们ProgressBar
看起来不“旧式”,您需要在入口点添加以下行(例如Main
方法或Application.OnStartUp
方法):
System.Windows.Forms.Application.EnableVisualStyles();