8

但是,我发现了很多显示进度条和轮子的示例;我只能找到一个 javascript 示例来显示省略号(点-点-点)来表示进度,因此我想问这个问题。我的应用程序不是很复杂——它只有几个复选框和一个按钮。最近我的团队要求进行增强,并希望保持简单。

用户在配置所需设置后单击一个名为“GO”的按钮。它背后的代码也非常简单——它在点击事件后禁用按钮并调用一个独立的 exe,使用ProcessStartInfo它执行三个操作“reconcle”、“post”和“publish”。我使用该WaitForExist()方法重新启用按钮。

我的团队要求我在按钮上显示“当前进程”。他们只是希望按钮文本显示 Reconciling。Reconciling.. Reconciling...(定期说,1 秒),然后以类似的方式发布和发布。

很高兴知道实现这一目标的最合适的方法。提前致谢。

4

1 回答 1

10

最简单的方法是使用ObjectAnimationUsingKeyFrames. 在 Content 上设置 TargetProperty 并将Value每个设置DiscreteObjectKeyFrameReconciling. Reconciling.. Reconciling...

ControlTemplate带有ContentPresenter命名的示例PART_Content

<ControlTemplate.Triggers>
    <Trigger Property="IsEnabled" Value="False">
        <Trigger.EnterActions>
            <BeginStoryboard>
                <Storyboard>
                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PART_Content" Storyboard.TargetProperty="Content" Duration="00:00:00.8" RepeatBehavior="Forever">
                        <DiscreteObjectKeyFrame KeyTime="00:00:00.0" Value="Loading"/>
                        <DiscreteObjectKeyFrame KeyTime="00:00:00.2" Value="Loading."/>
                        <DiscreteObjectKeyFrame KeyTime="00:00:00.4" Value="Loading.."/>
                        <DiscreteObjectKeyFrame KeyTime="00:00:00.6" Value="Loading..."/>
                    </ObjectAnimationUsingKeyFrames>
                </Storyboard>
            </BeginStoryboard>
        </Trigger.EnterActions>
    </Trigger>
</ControlTemplate.Triggers>
于 2012-07-02T23:15:19.430 回答