如何在 WPF 窗口(如 MozilaFirefox 浏览器)中放置进度控件

发布于 2024-12-23 05:52:37 字数 226 浏览 1 评论 0 原文

我正在开发一个 wpf 应用程序,我想在其中显示进度动画,就像它在 MozilaFirefox 上的显示方式一样,如下图所示。

我尝试使用 WPF 的 Statusbar 控件,但我再次希望它应该出现在窗口顶部,并在处理完成后消失。

请指导一些例子。提示或建议将不胜感激。提前致谢。

处理

I am developing a wpf application where I want to show a progress animation like how it is showing on MozilaFirefox something like below figure.

I tried with Statusbar control of WPF but again I want it should appear on the top of the window and disappear once processing done.

Please guide some example. Hints or suggestion will be appreciated. Thanks in advance.

Processing

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

云淡风轻 2024-12-30 05:52:37

你想要的是一个忙碌指示器。

扩展 WPF 工具包 中提供了一个 - http://wpftoolkit.codeplex.com/wikipage?title=BusyIndi​​cator

Telerik WPF 控件套件中还有一个,此处 - http://www.telerik.com/products/wpf/busyindicator.aspx

两者都可以定制以显示您自己的内容。

What you want is a busy indicator.

There is one provided in the Extended WPF Toolkit, here - http://wpftoolkit.codeplex.com/wikipage?title=BusyIndicator.

There is also one in the Telerik suite of WPF controls, here - http://www.telerik.com/products/wpf/busyindicator.aspx.

Both can be customised to display your own content.

沫雨熙 2024-12-30 05:52:37

这是 XAML 中的一个简单的忙碌指示器:

<Control Width="40">
    <Control.Style>
        <Style TargetType="Control">
            <Setter Property="Foreground" Value="White" />
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="Control">
                        <Viewbox>
                            <Canvas RenderTransformOrigin="0.5,0.5" Width="40" Height="40">
                                <Canvas.Resources>
                                    <Style TargetType="{x:Type Ellipse}">
                                        <Setter Property="Stretch" Value="Fill"/>
                                        <Setter Property="Fill" Value="Black"/>
                                    </Style>
                                </Canvas.Resources>
                                <Ellipse Width="21.835" Height="21.862" Canvas.Left="20.1696" Canvas.Top="9.76358" Opacity="1.0"/>
                                <Ellipse Width="20.835" Height="20.862" Canvas.Left="2.86816" Canvas.Top="29.9581" Opacity="0.9"/>
                                <Ellipse Width="19.835" Height="19.862" Canvas.Left="0.00001" Canvas.Top="57.9341" Opacity="0.8"/>
                                <Ellipse Width="17.835" Height="17.862" Canvas.Left="12.1203" Canvas.Top="83.3163" Opacity="0.7"/>
                                <Ellipse Width="16.835" Height="16.862" Canvas.Left="36.5459" Canvas.Top="98.1380" Opacity="0.6"/>
                                <Ellipse Width="14.835" Height="14.862" Canvas.Left="64.6723" Canvas.Top="96.8411" Opacity="0.5"/>
                                <Ellipse Width="13.835" Height="13.862" Canvas.Left="87.6176" Canvas.Top="81.2783" Opacity="0.4"/>
                                <Ellipse Width="12.835" Height="12.862" Canvas.Left="98.165"  Canvas.Top="54.4140" Opacity="0.3"/>
                                <Ellipse Width="11.835" Height="11.862" Canvas.Left="92.9838" Canvas.Top="26.9938" Opacity="0.2"/>
                                <Canvas.RenderTransform>
                                    <RotateTransform x:Name="SpinnerRotate" Angle="0"/>
                                </Canvas.RenderTransform>
                                <Canvas.Triggers>
                                    <EventTrigger RoutedEvent="ContentControl.Loaded">
                                        <BeginStoryboard>
                                            <Storyboard>
                                                <DoubleAnimation Storyboard.TargetName="SpinnerRotate" Storyboard.TargetProperty="Angle" From="0" To="360" Duration="0:0:01.3" RepeatBehavior="Forever"/>
                                            </Storyboard>
                                        </BeginStoryboard>
                                    </EventTrigger>
                                </Canvas.Triggers>
                            </Canvas>
                        </Viewbox>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Control.Style>
</Control>

Here's a simple busy indicator in XAML:

<Control Width="40">
    <Control.Style>
        <Style TargetType="Control">
            <Setter Property="Foreground" Value="White" />
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="Control">
                        <Viewbox>
                            <Canvas RenderTransformOrigin="0.5,0.5" Width="40" Height="40">
                                <Canvas.Resources>
                                    <Style TargetType="{x:Type Ellipse}">
                                        <Setter Property="Stretch" Value="Fill"/>
                                        <Setter Property="Fill" Value="Black"/>
                                    </Style>
                                </Canvas.Resources>
                                <Ellipse Width="21.835" Height="21.862" Canvas.Left="20.1696" Canvas.Top="9.76358" Opacity="1.0"/>
                                <Ellipse Width="20.835" Height="20.862" Canvas.Left="2.86816" Canvas.Top="29.9581" Opacity="0.9"/>
                                <Ellipse Width="19.835" Height="19.862" Canvas.Left="0.00001" Canvas.Top="57.9341" Opacity="0.8"/>
                                <Ellipse Width="17.835" Height="17.862" Canvas.Left="12.1203" Canvas.Top="83.3163" Opacity="0.7"/>
                                <Ellipse Width="16.835" Height="16.862" Canvas.Left="36.5459" Canvas.Top="98.1380" Opacity="0.6"/>
                                <Ellipse Width="14.835" Height="14.862" Canvas.Left="64.6723" Canvas.Top="96.8411" Opacity="0.5"/>
                                <Ellipse Width="13.835" Height="13.862" Canvas.Left="87.6176" Canvas.Top="81.2783" Opacity="0.4"/>
                                <Ellipse Width="12.835" Height="12.862" Canvas.Left="98.165"  Canvas.Top="54.4140" Opacity="0.3"/>
                                <Ellipse Width="11.835" Height="11.862" Canvas.Left="92.9838" Canvas.Top="26.9938" Opacity="0.2"/>
                                <Canvas.RenderTransform>
                                    <RotateTransform x:Name="SpinnerRotate" Angle="0"/>
                                </Canvas.RenderTransform>
                                <Canvas.Triggers>
                                    <EventTrigger RoutedEvent="ContentControl.Loaded">
                                        <BeginStoryboard>
                                            <Storyboard>
                                                <DoubleAnimation Storyboard.TargetName="SpinnerRotate" Storyboard.TargetProperty="Angle" From="0" To="360" Duration="0:0:01.3" RepeatBehavior="Forever"/>
                                            </Storyboard>
                                        </BeginStoryboard>
                                    </EventTrigger>
                                </Canvas.Triggers>
                            </Canvas>
                        </Viewbox>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Control.Style>
</Control>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文