在WPF按钮中显示点 - 点进度

G J*_*G J 8 wpf progress ellipsis button

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

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

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

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

Sil*_*ind 10

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

ControlTemplate带有ContentPresenter命名的a的示例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>
Run Code Online (Sandbox Code Playgroud)