Windows窗体应用程序中的进度条具有标准的“闪耀”动画,但是当我尝试在WPF中添加进度条时,默认情况下我没有得到这样的东西。我们如何在Windows 8中使用WPF获得此功能?
Windows窗体
WPF
答案 0 :(得分:2)
这是一个相当古怪的修复,但您需要在应用程序中启用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 进度条正常工作,你必须调用它似乎很奇怪,但代码对我有效。
答案 1 :(得分:1)
如果你想要最终控制外观(即指示灯的颜色),我已经调整了一个我在另一个SO帖子上找到的控件,它提供了几乎相同的显示。
TWEAK:
<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>
全面实施:
预览:
答案 2 :(得分:0)
Milliron X answer没有帮助我,所以我不得不使用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();