如何在WPF进度条中使用PSD?

时间:2015-07-31 15:08:24

标签: wpf progress-bar photoshop

我有一个PSD文件,我想在WPF中使用它作为进度条。 我不知道该怎么做。

我看了这个 https://msdn.microsoft.com/en-us/library...

有写,我必须选择"导入Adobe Photoshop文件......"来自"文件"菜单

但我有#34; Blend for Visual Studio 2015",没有这样的选择。

我是否需要安装Expression Studio?

导入后,如何将其用作进度条并在必要时进行更新?

PSD文件图片Link = http://s21.postimg.org/70igirqif/Capture.png 请帮助,在这种情况下,我无法获得任何详细的教程,我完全无能为力。

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

以下是在ProgressBar中使用图像的ControlTemplate示例:

<ControlTemplate
    x:Key="ImageProgressBarTemplate"
    TargetType="ProgressBar">    
    <ControlTemplate.Triggers>
        <EventTrigger
            RoutedEvent="FrameworkElement.Loaded">
            <BeginStoryboard>
                <Storyboard
                    x:Name="str">
                    <RectAnimation
                        x:Name="quatanim"
                        Storyboard.TargetName="imgbrush"
                        Storyboard.TargetProperty="(ImageBrush.Viewport)"
                        From="0,0,36,36"
                        To="36,0,36,36"
                        Duration="0:0:5"
                        AutoReverse="False"
                        RepeatBehavior="Forever" />
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
    </ControlTemplate.Triggers>

    <!-- Custom progress bar goes here -->
    <Border
        Name="PART_Track"
        Width="{TemplateBinding Width}"
        BorderBrush="{TemplateBinding BorderBrush}"
        BorderThickness="{TemplateBinding BorderThickness}"
        Background="{TemplateBinding Background}"
        Height="{TemplateBinding Height}"
        CornerRadius="0"
        Padding="1.5">

        <Grid>
            <!-- Rounded mask (stretches to fill Grid) -->
            <Border
                Name="mask"
                Background="#EEEEEE"
                CornerRadius="0" />

            <!-- Any content -->

            <Rectangle
                Name="PART_Indicator"
                HorizontalAlignment="Left"
                Height="{TemplateBinding Height}">    
                <Rectangle.OpacityMask>
                    <VisualBrush
                        Visual="{Binding ElementName=mask}" />
                </Rectangle.OpacityMask>    
                <Rectangle.Fill>    
                    <ImageBrush
                        x:Name="imgbrush"
                        ImageSource="/myproject;component/Assets/myimage.png"
                        AlignmentX="Left"
                        Stretch="Fill"
                        TileMode="Tile"
                        AlignmentY="Top"
                        ViewportUnits="Absolute"
                        Viewport="0,0,36,36"
                        ViewboxUnits="RelativeToBoundingBox"
                        Viewbox="0,0,1,1">
                    </ImageBrush>    
                </Rectangle.Fill>    
            </Rectangle>    
        </Grid>    
    </Border>    
</ControlTemplate>

将其应用于进度条:

<ProgressBar Template="{StaticResource ImageProgressBarTemplate}"/>