-1

如何在 LoopingSelector 中应用颜色或背景图像?属性中没有此控件的选项。那么我们如何将颜色应用到这个控件,如下图所示。

在此处输入图像描述

4

2 回答 2

2

您可以选择修改循环选择器样式,修改样式模板中的网格背景

<Style TargetType="primitives:LoopingSelectorItem">
    <Setter Property="Foreground" Value="{StaticResource PhoneForegroundBrush}"/>
    <Setter Property="Padding" Value="6"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate>
                <Border x:Name="root" Opacity="0" CacheMode="BitmapCache" Background="Transparent" Padding="{TemplateBinding Padding}">

                    <VisualStateManager.VisualStateGroups>
                        <VisualStateGroup x:Name="CommonStates">

                            <VisualStateGroup.Transitions>
                                <VisualTransition GeneratedDuration="0:0:0.2"/>
                            </VisualStateGroup.Transitions>

                            <VisualState x:Name="Normal"/>

                            <VisualState x:Name="Expanded">
                                <Storyboard>
                                    <DoubleAnimation Storyboard.TargetName="root" Storyboard.TargetProperty="Opacity" To="1" Duration="0"/>
                                    <DoubleAnimation Storyboard.TargetName="background" Storyboard.TargetProperty="Opacity" To="0" Duration="0"/>
                                    <DoubleAnimation Storyboard.TargetName="contentPresenter" Storyboard.TargetProperty="Opacity" To=".6" Duration="0"/>
                                </Storyboard>
                            </VisualState>

                            <VisualState x:Name="Selected">
                                <Storyboard>
                                    <DoubleAnimation Storyboard.TargetName="root" Storyboard.TargetProperty="Opacity" To="1" Duration="0"/>
                                    <DoubleAnimation Storyboard.TargetName="background" Storyboard.TargetProperty="Opacity" To="1" Duration="0"/>
                                </Storyboard>
                            </VisualState>

                        </VisualStateGroup>
                    </VisualStateManager.VisualStateGroups>

                    <Border.RenderTransform>
                        <TranslateTransform x:Name="Transform"/>
                    </Border.RenderTransform>

                    <Grid>
                        <Rectangle x:Name="background" Margin="2" Opacity="0" Fill="{StaticResource PhoneInactiveBrush}" CacheMode="BitmapCache"/>

                        <Border BorderThickness="2" BorderBrush="{StaticResource PhoneInactiveBrush}">
                            <ContentPresenter x:Name="contentPresenter" CacheMode="BitmapCache"/>
                        </Border>
                    </Grid>

                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
于 2013-09-18T15:10:04.487 回答
1

这些效果可以很容易地与 Storyboard 混合

于 2013-09-19T07:47:19.680 回答