BusyIndi​​cator的进度环模板

时间:2014-05-26 07:26:14

标签: wpf progress-bar datatemplate wpftoolkit busyindicator

wpf扩展工具包具有BusyIndi​​cator控件,可以将模板应用于该控件中包含的进度条。 我希望进度条像win 8中的响铃进度条(就像代码项目http://www.codeproject.com/Articles/700185/Windows-Progress-Ring中那样),但我不能应用控件,只需要一个DataTemplate。 任何想法?

1 个答案:

答案 0 :(得分:2)

BusyIndi​​cator设计为内容控件。意思是它包含你放在里面的内容,并广告叠加到它。你可以为它创建一个ControlTemplate,但你必须这样做:

 <Style TargetType="{x:Type xctk:BusyIndicator}" x:Key="ProgressRing">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type xctk:BusyIndicator}">
                    <Grid>
                        <ContentControl Content="{TemplateBinding Content}"></ContentControl>
                        <Border HorizontalAlignment="Stretch" VerticalAlignment="Stretch" 
                                x:Name="Overlay" Visibility="{TemplateBinding IsBusy, Converter={StaticResource BoolToVis}}">
                            <Border.Background>
                                <SolidColorBrush Color="Black" Opacity="0.5"></SolidColorBrush>
                            </Border.Background>
                            <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">progress</TextBlock>
                        </Border>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

这与构建BusyIndi​​cator的方式类似,但允许您替换它使用的进度条。只需替换

BTW对于进度环你可以使用一个imageview并简单地无限地旋转它。