我可以在LongListMultiSelector中更改CheckBox颜色吗? WP8 [英] Can I change CheckBox color in LongListMultiSelector? WP8

查看:274
本文介绍了我可以在LongListMultiSelector中更改CheckBox颜色吗? WP8的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要在Windows Phone 8中更改LongListMultiSelector的CheckBox的颜色,因为我的背景是白色的,这是可能的?



谢谢。 b
$ b

解决方案

为了做到这一点,你必须先编辑ItemContainerSyle通过右键单击longlistselector从Visual Studio中的文档大纲,然后选择编辑附加风格 - >编辑ItemContainerSyle - >创建空白



然后您必须将生成的模板的setter替换为来自codeplex的原始setter代码。



以下设置代码将复选框置中,然后使其变为灰色:

 < Style.Setters> 
< Setter Property =BackgroundValue ={StaticResource PhoneAccentBrush}/>
< Setter Property =Template>
< Setter.Value>
< ControlTemplate TargetType =toolkit:LongListMultiSelectorItem>
< Grid MinHeight =52>
< Grid.Resources>
< ExponentialEase EasingMode =EaseInExponent =8x:Key =ExponentialEaseIn/>
< QuadraticEase EasingMode =EaseOutx:Key =QuadraticEaseOut/>
< /Grid.Resources>
< VisualStateManager.VisualStateGroups>
< VisualStateGroup x:Name =SelectionEnabledStates>
< VisualStateGroup.Transitions>
< VisualTransition x:Name =ClosedToExposed
From =ClosedTo =Exposed
GeneratedDuration =0:0:0.30>
< Storyboard>
< DoubleAnimationUsingKeyFrames Storyboard.TargetProperty =(UIElement.Opacity)
Storyboard.TargetName =OuterHintPanel>
< EasingDoubleKeyFrame KeyTime =0:0:0.0Value =0.0EasingFunction ={StaticResource QuadraticEaseOut}/>
< EasingDoubleKeyFrame KeyTime =0:0:0.30Value =1.0EasingFunction ={StaticResource QuadraticEaseOut}/>
< / DoubleAnimationUsingKeyFrames>
< / storyboard>
< / VisualTransition>
< VisualTransition x:Name =ExposedToClosed
From =ExposedTo =Closed
GeneratedDuration =0:0:0.30>
< Storyboard>
< DoubleAnimationUsingKeyFrames Storyboard.TargetProperty =(UIElement.Opacity)
Storyboard.TargetName =OuterHintPanel>
< EasingDoubleKeyFrame KeyTime =0:0:0.0Value =1.0EasingFunction ={StaticResource QuadraticEaseOut}/>
< EasingDoubleKeyFrame KeyTime =0:0:0.30Value =0.0EasingFunction ={StaticResource QuadraticEaseOut}/>
< / DoubleAnimationUsingKeyFrames>
< / storyboard>
< / VisualTransition>
< VisualTransition x:Name =ExposedToOpened
From =ExposedTo =Opened
GeneratedDuration =0:0:0.30>
< Storyboard>
< DoubleAnimationUsingKeyFrames Storyboard.TargetProperty =(UIElement.RenderTransform)。(CompositeTransform.TranslateX)
Storyboard.TargetName =SelectBox>
< EasingDoubleKeyFrame KeyTime =0:0:0.0Value = - 58EasingFunction ={StaticResource ExponentialEaseIn}/>
< EasingDoubleKeyFrame KeyTime =0:0:0.15Value =0EasingFunction ={StaticResource ExponentialEaseIn}/>
< / DoubleAnimationUsingKeyFrames>
< DoubleAnimationUsingKeyFrames Storyboard.TargetProperty =(UIElement.RenderTransform)。(CompositeTransform.TranslateX)
Storyboard.TargetName =Presenter>
< EasingDoubleKeyFrame KeyTime =0:0:0.0Value =24EasingFunction ={StaticResource ExponentialEaseIn}/>
< EasingDoubleKeyFrame KeyTime =0:0:0.15Value =86EasingFunction ={StaticResource ExponentialEaseIn}/>
< / DoubleAnimationUsingKeyFrames>
< DoubleAnimationUsingKeyFrames Storyboard.TargetProperty =(UIElement.Opacity)
Storyboard.TargetName =OuterHintPanel>
< EasingDoubleKeyFrame KeyTime =0:0:0.0Value =1.0EasingFunction ={StaticResource QuadraticEaseOut}/>
< EasingDoubleKeyFrame KeyTime =0:0:0.30Value =0.0EasingFunction ={StaticResource QuadraticEaseOut}/>
< / DoubleAnimationUsingKeyFrames>
< ObjectAnimationUsingKeyFrames Storyboard.TargetProperty =(UIElement.Visibility)
Storyboard.TargetName =SelectBox>
< DiscreteObjectKeyFrame KeyTime =0:0:0.0Value =Visible/>
< / ObjectAnimationUsingKeyFrames>
< ObjectAnimationUsingKeyFrames Storyboard.TargetProperty =(UIElement.IsHitTestVisible)
Storyboard.TargetName =OuterHintPanel>
< DiscreteObjectKeyFrame KeyTime =0:0:0Value =False/>
< / ObjectAnimationUsingKeyFrames>
< ObjectAnimationUsingKeyFrames Storyboard.TargetProperty =(UIElement.IsHitTestVisible)
Storyboard.TargetName =InnerHintPanel>
< DiscreteObjectKeyFrame KeyTime =0:0:0Value =False/>
< / ObjectAnimationUsingKeyFrames>
< / storyboard>
< / VisualTransition>
< VisualTransition x:Name =ClosedToOpened
From =ClosedTo =Opened
GeneratedDuration =0:0:0.15>
< Storyboard>
< DoubleAnimationUsingKeyFrames Storyboard.TargetProperty =(UIElement.RenderTransform)。(CompositeTransform.TranslateX)
Storyboard.TargetName =SelectBox>
< EasingDoubleKeyFrame KeyTime =0:0:0.0Value = - 58EasingFunction ={StaticResource ExponentialEaseIn}/>
< EasingDoubleKeyFrame KeyTime =0:0:0.15Value =0EasingFunction ={StaticResource ExponentialEaseIn}/>
< / DoubleAnimationUsingKeyFrames>
< DoubleAnimationUsingKeyFrames Storyboard.TargetProperty =(UIElement.RenderTransform)。(CompositeTransform.TranslateX)
Storyboard.TargetName =Presenter>
< EasingDoubleKeyFrame KeyTime =0:0:0.0Value =24EasingFunction ={StaticResource ExponentialEaseIn}/>
< EasingDoubleKeyFrame KeyTime =0:0:0.15Value =86EasingFunction ={StaticResource ExponentialEaseIn}/>
< / DoubleAnimationUsingKeyFrames>
< ObjectAnimationUsingKeyFrames Storyboard.TargetProperty =(UIElement.Visibility)
Storyboard.TargetName =SelectBox>
< DiscreteObjectKeyFrame KeyTime =0:0:0.0Value =Visible/>
< / ObjectAnimationUsingKeyFrames>
< ObjectAnimationUsingKeyFrames Storyboard.TargetProperty =(UIElement.IsHitTestVisible)
Storyboard.TargetName =OuterHintPanel>
< DiscreteObjectKeyFrame KeyTime =0:0:0Value =False/>
< / ObjectAnimationUsingKeyFrames>
< ObjectAnimationUsingKeyFrames Storyboard.TargetProperty =(UIElement.IsHitTestVisible)
Storyboard.TargetName =InnerHintPanel>
< DiscreteObjectKeyFrame KeyTime =0:0:0Value =False/>
< / ObjectAnimationUsingKeyFrames>
< / storyboard>
< / VisualTransition>
< VisualTransition x:Name =OpenedToClosed
From =OpenedTo =Closed
GeneratedDuration =0:0:0.15>
< Storyboard>
< DoubleAnimationUsingKeyFrames Storyboard.TargetProperty =(UIElement.RenderTransform)。(CompositeTransform.TranslateX)
Storyboard.TargetName =SelectBox>
< EasingDoubleKeyFrame KeyTime =0:0:0.0Value =0EasingFunction ={StaticResource ExponentialEaseIn}/>
< EasingDoubleKeyFrame KeyTime =0:0:0.15Value = - 58EasingFunction ={StaticResource ExponentialEaseIn}/>
< / DoubleAnimationUsingKeyFrames>
< DoubleAnimationUsingKeyFrames Storyboard.TargetProperty =(UIElement.RenderTransform)。(CompositeTransform.TranslateX)
Storyboard.TargetName =Presenter>
< EasingDoubleKeyFrame KeyTime =0:0:0.0Value =86EasingFunction ={StaticResource ExponentialEaseIn}/>
< EasingDoubleKeyFrame KeyTime =0:0:0.15Value =24EasingFunction ={StaticResource ExponentialEaseIn}/>
< / DoubleAnimationUsingKeyFrames>
< ObjectAnimationUsingKeyFrames Storyboard.TargetProperty =(UIElement.Visibility)
Storyboard.TargetName =SelectBox>
< DiscreteObjectKeyFrame KeyTime =0:0:0.15Value =Collapsed/>
< / ObjectAnimationUsingKeyFrames>
< / storyboard>
< / VisualTransition>
< /VisualStateGroup.Transitions>
< VisualStateGroup.States>
< VisualState x:Name =Closed/>
< VisualState x:Name =Exposed>
< Storyboard>
< DoubleAnimation Storyboard.TargetProperty =(UIElement.Opacity)
Storyboard.TargetName =OuterHintPanel
Duration =0To =1.0/&
< / storyboard>
< / VisualState>
< VisualState x:Name =Opened>
< Storyboard>
< DoubleAnimation Storyboard.TargetProperty =(UIElement.RenderTransform)。(CompositeTransform.TranslateX)
Storyboard.TargetName =SelectBox
Duration =0To =0 >
< DoubleAnimation Storyboard.TargetProperty =(UIElement.RenderTransform)。(CompositeTransform.TranslateX)
Storyboard.TargetName =Presenter
Duration =0To =86 >
< ObjectAnimationUsingKeyFrames Storyboard.TargetProperty =(UIElement.Visibility)
Storyboard.TargetName =SelectBox>
< DiscreteObjectKeyFrame KeyTime =0:0:0Value =Visible/>
< / ObjectAnimationUsingKeyFrames>
< ObjectAnimationUsingKeyFrames Storyboard.TargetProperty =(UIElement.Visibility)
Storyboard.TargetName =OuterCover>
< DiscreteObjectKeyFrame KeyTime =0:0:0Value =Visible/>
< / ObjectAnimationUsingKeyFrames>
< DoubleAnimation Storyboard.TargetProperty =(UIElement.Opacity)
Storyboard.TargetName =OuterHintPanel
Duration =0To =0.0/&
< ObjectAnimationUsingKeyFrames Storyboard.TargetProperty =(UIElement.IsHitTestVisible)
Storyboard.TargetName =OuterHintPanel>
< DiscreteObjectKeyFrame KeyTime =0:0:0Value =False/>
< / ObjectAnimationUsingKeyFrames>
< ObjectAnimationUsingKeyFrames Storyboard.TargetProperty =(UIElement.IsHitTestVisible)
Storyboard.TargetName =InnerHintPanel>
< DiscreteObjectKeyFrame KeyTime =0:0:0Value =False/>
< / ObjectAnimationUsingKeyFrames>
< / storyboard>
< / VisualState>
< /VisualStateGroup.States>
< / VisualStateGroup>
< /VisualStateManager.VisualStateGroups>
< Grid Horizo​​ntalAlignment =Stretch>
< Grid.ColumnDefinitions>
< ColumnDefinition Width =*/>
< ColumnDefinition Width =Auto/>
< /Grid.ColumnDefinitions>
< Grid Grid.Column =0Horizo​​ntalAlignment =Stretchprimitives:ClipToBounds.IsEnabled =True>
< ContentPresenter x:Name =Presenter>
< ContentPresenter.RenderTransform>
< CompositeTransform TranslateX =24/>
< /ContentPresenter.RenderTransform>
< / ContentPresenter>
< / Grid>
< Rectangle x:Name =InnerHintPanelGrid.Column =0Width =24
Height ={TemplateBinding HintPanelHeight}
Horizo​​ntalAlignment =Left
Fill =Transparent
StrokeThickness =0>
< Rectangle.RenderTransform>
< CompositeTransform TranslateX =24/>
< /Rectangle.RenderTransform>
< / Rectangle>
&ContentControl x:Name =InfoPresenterGrid.Column =1
VerticalAlignment =Top
Content ={TemplateBinding ContentInfo}
ContentTemplate ={ TemplateBinding ContentInfoTemplate}/>
< / Grid>
< Rectangle x:Name =OuterHintPanelWidth =24
Horizo​​ntalAlignment =Left
Height ={TemplateBinding HintPanelHeight}
Fill ={TemplateBinding Background }
StrokeThickness =0Opacity =0.0/>
< Grid x:Name =OuterCoverIsHitTestVisible =True
Visibility =CollapsedBackground =Transparent/&
< Canvas Horizo​​ntalAlignment =Left>
< CheckBox x:Name =SelectBoxVerticalAlignment =CenterMargin =12,0,0,0Visibility =Collapsed
IsChecked ={Binding RelativeSource = {RelativeSource TemplatedParent} ,Path = IsSelected,Mode = TwoWay}BorderBrush =#FF4B4B4BForeground =#FF424242Style ={StaticResource CheckBoxStyleGrey}>
< CheckBox.RenderTransform>
< CompositeTransform TranslateX = - 58/>
< /CheckBox.RenderTransform>
< / CheckBox>
< / Canvas>
< / Grid>
< / ControlTemplate>
< /Setter.Value>
< / Setter>
< / Style.Setters>

现在复选框将显示为灰色,但是内部的实际ticks将仍然是白色的从移动的资源)。



您可以做的是以同样的方式编辑复选框样式。
以下代码将使灰色变为灰色:

 < Style x:Key =CheckBoxStyleGreyBasedOn = {StaticResource PhoneRadioButtonCheckBoxBase}TargetType =CheckBox> 
< Setter Property =Template>
< Setter.Value>
< ControlTemplate TargetType =CheckBox>
< Grid Background =TransparentHorizo​​ntalAlignment =Left>
< VisualStateManager.VisualStateGroups>
< VisualStateGroup x:Name =CommonStates>
< VisualState x:Name =Normal/>
< VisualState x:Name =MouseOver/>
< VisualState x:Name =Pressed>
< Storyboard>
< ObjectAnimationUsingKeyFrames Storyboard.TargetProperty =BackgroundStoryboard.TargetName =CheckBackground>
< DiscreteObjectKeyFrame KeyTime =0Value ={StaticResource PhoneRadioCheckBoxPressedBrush}/>
< / ObjectAnimationUsingKeyFrames>
< ObjectAnimationUsingKeyFrames Storyboard.TargetProperty =FillStoryboard.TargetName =IndeterminateMark>
< DiscreteObjectKeyFrame KeyTime =0Value ={StaticResource PhoneButtonBasePressedForegroundBrush}/>
< / ObjectAnimationUsingKeyFrames>
< / storyboard>
< / VisualState>
< VisualState x:Name =Disabled>
< Storyboard>
< ObjectAnimationUsingKeyFrames Storyboard.TargetProperty =BorderBrushStoryboard.TargetName =CheckBackground>
< DiscreteObjectKeyFrame KeyTime =0Value ={StaticResource PhoneDisabledBrush}/>
< / ObjectAnimationUsingKeyFrames>
< ObjectAnimationUsingKeyFrames Storyboard.TargetProperty =FillStoryboard.TargetName =IndeterminateMark>
< DiscreteObjectKeyFrame KeyTime =0Value ={StaticResource PhoneDisabledBrush}/>
< / ObjectAnimationUsingKeyFrames>
< ObjectAnimationUsingKeyFrames Storyboard.TargetProperty =ForegroundStoryboard.TargetName =ContentContainer>
< DiscreteObjectKeyFrame KeyTime =0Value ={StaticResource PhoneDisabledBrush}/>
< / ObjectAnimationUsingKeyFrames>
< / storyboard>
< / VisualState>
< / VisualStateGroup>
< VisualStateGroup x:Name =CheckStates>
< VisualState x:Name =Checked>
< Storyboard>
< ObjectAnimationUsingKeyFrames Storyboard.TargetProperty =VisibilityStoryboard.TargetName =CheckMark>
< DiscreteObjectKeyFrame KeyTime =0>
< DiscreteObjectKeyFrame.Value>
< Visibility>可见< / Visibility>
< /DiscreteObjectKeyFrame.Value>
< / DiscreteObjectKeyFrame>
< / ObjectAnimationUsingKeyFrames>
< / storyboard>
< / VisualState>
< VisualState x:Name =未检查/>
< VisualState x:Name =Indeterminate>
< Storyboard>
< ObjectAnimationUsingKeyFrames Storyboard.TargetProperty =VisibilityStoryboard.TargetName =IndeterminateMark>
< DiscreteObjectKeyFrame KeyTime =0>
< DiscreteObjectKeyFrame.Value>
< Visibility>可见< / Visibility>
< /DiscreteObjectKeyFrame.Value>
< / DiscreteObjectKeyFrame>
< / ObjectAnimationUsingKeyFrames>
< / storyboard>
< / VisualState>
< / VisualStateGroup>
< /VisualStateManager.VisualStateGroups>
< Grid Margin ={StaticResource PhoneTouchTargetLargeOverhang}>
< Grid.ColumnDefinitions>
< ColumnDefinition Width =32/>
< ColumnDefinition Width =*/>
< /Grid.ColumnDefinitions>
< Grid Grid.Column =0VerticalAlignment =Top>
< Border x:Name =CheckBackgroundBorderBrush ={TemplateBinding BorderBrush}BorderThickness ={StaticResource PhoneBorderThickness}Background ={TemplateBinding Background}Horizo​​ntalAlignment =LeftHeight =32IsHitTestVisible = FalseVerticalAlignment =CenterWidth =32/>
< Rectangle x:Name =IndeterminateMarkFill ={StaticResource PhoneRadioCheckBoxCheckBrush} Horizo​​ntalAlignment =CenterHeight =16IsHitTestVisible =FalseVisibility =CollapsedVerticalAlignment = 16/>
< Path x:Name =CheckMarkData =M0,123 L39,93 L124,164 L256,18 L295,49 L124,240 zFlowDirection =LeftToRightHorizo​​ntalAlignment =CenterHeight = 21IsHitTestVisible =FalseStretch =FillStrokeThickness =3StrokeLineJoin =RoundVisibility =CollapsedVerticalAlignment =CenterWidth =23Fill ={StaticResource PhoneChromeBrush}/>
< / Grid>
&ContentControl x:Name =ContentContainerContentTemplate ={TemplateBinding ContentTemplate}Content ={TemplateBinding Content}Grid.Column =1Foreground ={TemplateBinding Foreground}Horizo​​ntalContentAlignment ={TemplateBinding Horizo​​ntalContentAlignment}Margin =12,0,0,0Padding ={TemplateBinding Padding}VerticalContentAlignment ={TemplateBinding VerticalContentAlignment}/>
< / Grid>
< / Grid>
< / ControlTemplate>
< /Setter.Value>
< / Setter>
< / Style>


I need to change the color for the LongListMultiSelector's CheckBox in Windows Phone 8, because my background is white, this is possible?

Thanks.

解决方案

In order to do that you have to first edit the ItemContainerSyle by right clicking on the longlistselector from document outline in visual studio and then choose Edit Additional Style -> Edit ItemContainerSyle -> Create Empty

Then you have to replace the setters for the generated template with the original setter code from codeplex.

the following setters code centers the check boxes and makes then grey:

<Style.Setters>
        <Setter Property="Background" Value="{StaticResource PhoneAccentBrush}"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="toolkit:LongListMultiSelectorItem">
                    <Grid MinHeight="52">
                        <Grid.Resources>
                            <ExponentialEase EasingMode="EaseIn" Exponent="8" x:Key="ExponentialEaseIn"/>
                            <QuadraticEase EasingMode="EaseOut" x:Key="QuadraticEaseOut"/>
                        </Grid.Resources>
                        <VisualStateManager.VisualStateGroups>
                            <VisualStateGroup x:Name="SelectionEnabledStates">
                                <VisualStateGroup.Transitions>
                                    <VisualTransition x:Name="ClosedToExposed" 
                                                  From="Closed" To="Exposed"
                                                  GeneratedDuration="0:0:0.30">
                                        <Storyboard>
                                            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" 
                                                                       Storyboard.TargetName="OuterHintPanel">
                                                <EasingDoubleKeyFrame KeyTime="0:0:0.0" Value="0.0" EasingFunction="{StaticResource QuadraticEaseOut}"/>
                                                <EasingDoubleKeyFrame KeyTime="0:0:0.30" Value="1.0" EasingFunction="{StaticResource QuadraticEaseOut}"/>
                                            </DoubleAnimationUsingKeyFrames>
                                        </Storyboard>
                                    </VisualTransition>
                                    <VisualTransition x:Name="ExposedToClosed" 
                                                  From="Exposed" To="Closed"
                                                  GeneratedDuration="0:0:0.30">
                                        <Storyboard>
                                            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" 
                                                                       Storyboard.TargetName="OuterHintPanel">
                                                <EasingDoubleKeyFrame KeyTime="0:0:0.0" Value="1.0" EasingFunction="{StaticResource QuadraticEaseOut}"/>
                                                <EasingDoubleKeyFrame KeyTime="0:0:0.30" Value="0.0" EasingFunction="{StaticResource QuadraticEaseOut}"/>
                                            </DoubleAnimationUsingKeyFrames>
                                        </Storyboard>
                                    </VisualTransition>
                                    <VisualTransition x:Name="ExposedToOpened"
                                                  From="Exposed" To="Opened"
                                                  GeneratedDuration="0:0:0.30">
                                        <Storyboard>
                                            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" 
                                                                       Storyboard.TargetName="SelectBox">
                                                <EasingDoubleKeyFrame KeyTime="0:0:0.0" Value="-58" EasingFunction="{StaticResource ExponentialEaseIn}"/>
                                                <EasingDoubleKeyFrame KeyTime="0:0:0.15" Value="0" EasingFunction="{StaticResource ExponentialEaseIn}"/>
                                            </DoubleAnimationUsingKeyFrames>
                                            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" 
                                                                       Storyboard.TargetName="Presenter">
                                                <EasingDoubleKeyFrame KeyTime="0:0:0.0" Value="24" EasingFunction="{StaticResource ExponentialEaseIn}"/>
                                                <EasingDoubleKeyFrame KeyTime="0:0:0.15" Value="86" EasingFunction="{StaticResource ExponentialEaseIn}"/>
                                            </DoubleAnimationUsingKeyFrames>
                                            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" 
                                                                       Storyboard.TargetName="OuterHintPanel">
                                                <EasingDoubleKeyFrame KeyTime="0:0:0.0" Value="1.0" EasingFunction="{StaticResource QuadraticEaseOut}"/>
                                                <EasingDoubleKeyFrame KeyTime="0:0:0.30" Value="0.0" EasingFunction="{StaticResource QuadraticEaseOut}"/>
                                            </DoubleAnimationUsingKeyFrames>
                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" 
                                                                       Storyboard.TargetName="SelectBox">
                                                <DiscreteObjectKeyFrame KeyTime="0:0:0.0" Value="Visible"/>
                                            </ObjectAnimationUsingKeyFrames>
                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.IsHitTestVisible)" 
                                                                       Storyboard.TargetName="OuterHintPanel">
                                                <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="False"/>
                                            </ObjectAnimationUsingKeyFrames>
                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.IsHitTestVisible)" 
                                                                       Storyboard.TargetName="InnerHintPanel">
                                                <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="False"/>
                                            </ObjectAnimationUsingKeyFrames>
                                        </Storyboard>
                                    </VisualTransition>
                                    <VisualTransition x:Name="ClosedToOpened"
                                                  From="Closed" To="Opened"
                                                  GeneratedDuration="0:0:0.15">
                                        <Storyboard>
                                            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" 
                                                                       Storyboard.TargetName="SelectBox">
                                                <EasingDoubleKeyFrame KeyTime="0:0:0.0" Value="-58" EasingFunction="{StaticResource ExponentialEaseIn}"/>
                                                <EasingDoubleKeyFrame KeyTime="0:0:0.15" Value="0" EasingFunction="{StaticResource ExponentialEaseIn}"/>
                                            </DoubleAnimationUsingKeyFrames>
                                            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" 
                                                                       Storyboard.TargetName="Presenter">
                                                <EasingDoubleKeyFrame KeyTime="0:0:0.0" Value="24" EasingFunction="{StaticResource ExponentialEaseIn}"/>
                                                <EasingDoubleKeyFrame KeyTime="0:0:0.15" Value="86" EasingFunction="{StaticResource ExponentialEaseIn}"/>
                                            </DoubleAnimationUsingKeyFrames>
                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" 
                                                                       Storyboard.TargetName="SelectBox">
                                                <DiscreteObjectKeyFrame KeyTime="0:0:0.0" Value="Visible"/>
                                            </ObjectAnimationUsingKeyFrames>
                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.IsHitTestVisible)" 
                                                                       Storyboard.TargetName="OuterHintPanel">
                                                <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="False"/>
                                            </ObjectAnimationUsingKeyFrames>
                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.IsHitTestVisible)" 
                                                                       Storyboard.TargetName="InnerHintPanel">
                                                <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="False"/>
                                            </ObjectAnimationUsingKeyFrames>
                                        </Storyboard>
                                    </VisualTransition>
                                    <VisualTransition x:Name="OpenedToClosed"
                                                  From="Opened" To="Closed"
                                                  GeneratedDuration="0:0:0.15">
                                        <Storyboard>
                                            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" 
                                                                       Storyboard.TargetName="SelectBox">
                                                <EasingDoubleKeyFrame KeyTime="0:0:0.0" Value="0" EasingFunction="{StaticResource ExponentialEaseIn}"/>
                                                <EasingDoubleKeyFrame KeyTime="0:0:0.15" Value="-58" EasingFunction="{StaticResource ExponentialEaseIn}"/>
                                            </DoubleAnimationUsingKeyFrames>
                                            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" 
                                                                       Storyboard.TargetName="Presenter">
                                                <EasingDoubleKeyFrame KeyTime="0:0:0.0" Value="86" EasingFunction="{StaticResource ExponentialEaseIn}"/>
                                                <EasingDoubleKeyFrame KeyTime="0:0:0.15" Value="24" EasingFunction="{StaticResource ExponentialEaseIn}"/>
                                            </DoubleAnimationUsingKeyFrames>
                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" 
                                                                       Storyboard.TargetName="SelectBox">
                                                <DiscreteObjectKeyFrame KeyTime="0:0:0.15" Value="Collapsed"/>
                                            </ObjectAnimationUsingKeyFrames>
                                        </Storyboard>
                                    </VisualTransition>
                                </VisualStateGroup.Transitions>
                                <VisualStateGroup.States>
                                    <VisualState x:Name="Closed"/>
                                    <VisualState x:Name="Exposed">
                                        <Storyboard>
                                            <DoubleAnimation Storyboard.TargetProperty="(UIElement.Opacity)" 
                                                         Storyboard.TargetName="OuterHintPanel"
                                                         Duration="0" To="1.0"/>
                                        </Storyboard>
                                    </VisualState>
                                    <VisualState x:Name="Opened">
                                        <Storyboard>
                                            <DoubleAnimation Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" 
                                                         Storyboard.TargetName="SelectBox"
                                                         Duration="0" To="0"/>
                                            <DoubleAnimation Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" 
                                                         Storyboard.TargetName="Presenter"
                                                         Duration="0" To="86"/>
                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" 
                                                                       Storyboard.TargetName="SelectBox">
                                                <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>
                                            </ObjectAnimationUsingKeyFrames>
                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" 
                                                                       Storyboard.TargetName="OuterCover">
                                                <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="Visible"/>
                                            </ObjectAnimationUsingKeyFrames>
                                            <DoubleAnimation Storyboard.TargetProperty="(UIElement.Opacity)" 
                                                         Storyboard.TargetName="OuterHintPanel"
                                                         Duration="0" To="0.0"/>
                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.IsHitTestVisible)" 
                                                                       Storyboard.TargetName="OuterHintPanel">
                                                <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="False"/>
                                            </ObjectAnimationUsingKeyFrames>
                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.IsHitTestVisible)" 
                                                                       Storyboard.TargetName="InnerHintPanel">
                                                <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="False"/>
                                            </ObjectAnimationUsingKeyFrames>
                                        </Storyboard>
                                    </VisualState>
                                </VisualStateGroup.States>
                            </VisualStateGroup>
                        </VisualStateManager.VisualStateGroups>
                        <Grid HorizontalAlignment="Stretch">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="*"/>
                                <ColumnDefinition Width="Auto"/>
                            </Grid.ColumnDefinitions>
                            <Grid Grid.Column="0" HorizontalAlignment="Stretch" primitives:ClipToBounds.IsEnabled="True">
                                <ContentPresenter x:Name="Presenter">
                                    <ContentPresenter.RenderTransform>
                                        <CompositeTransform TranslateX="24"/>
                                    </ContentPresenter.RenderTransform>
                                </ContentPresenter>
                            </Grid>
                            <Rectangle x:Name="InnerHintPanel" Grid.Column="0" Width="24"
                                   Height="{TemplateBinding HintPanelHeight}"
                                   HorizontalAlignment="Left"
                                   Fill="Transparent"
                                   StrokeThickness="0">
                                <Rectangle.RenderTransform>
                                    <CompositeTransform TranslateX="24"/>
                                </Rectangle.RenderTransform>
                            </Rectangle>
                            <ContentControl x:Name="InfoPresenter" Grid.Column="1" 
                                        VerticalAlignment="Top"
                                        Content="{TemplateBinding ContentInfo}"
                                        ContentTemplate="{TemplateBinding ContentInfoTemplate}"/>
                        </Grid>
                        <Rectangle x:Name="OuterHintPanel" Width="24"
                               HorizontalAlignment="Left"
                               Height="{TemplateBinding HintPanelHeight}"
                               Fill="{TemplateBinding Background}"
                               StrokeThickness="0" Opacity="0.0"/>
                        <Grid x:Name="OuterCover" IsHitTestVisible="True"
                          Visibility="Collapsed" Background="Transparent"/>
                        <Canvas HorizontalAlignment="Left">
                            <CheckBox x:Name="SelectBox" VerticalAlignment="Center" Margin="12,0,0,0" Visibility="Collapsed"
                                  IsChecked="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=IsSelected, Mode=TwoWay}" BorderBrush="#FF4B4B4B" Foreground="#FF424242" Style="{StaticResource CheckBoxStyleGrey}">
                                <CheckBox.RenderTransform>
                                    <CompositeTransform TranslateX="-58"/>
                                </CheckBox.RenderTransform>
                            </CheckBox>
                        </Canvas>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style.Setters>

Now the check box will appear as grey but the actual ticks inside will still be white (since they inherit from the mobile's resources).

What you can do is edit the check box style as well with the same way. The following code will make the tick grey:

<Style x:Key="CheckBoxStyleGrey" BasedOn="{StaticResource PhoneRadioButtonCheckBoxBase}" TargetType="CheckBox">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="CheckBox">
                <Grid Background="Transparent" HorizontalAlignment="Left">
                    <VisualStateManager.VisualStateGroups>
                        <VisualStateGroup x:Name="CommonStates">
                            <VisualState x:Name="Normal"/>
                            <VisualState x:Name="MouseOver"/>
                            <VisualState x:Name="Pressed">
                                <Storyboard>
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="CheckBackground">
                                        <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneRadioCheckBoxPressedBrush}"/>
                                    </ObjectAnimationUsingKeyFrames>
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Fill" Storyboard.TargetName="IndeterminateMark">
                                        <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneButtonBasePressedForegroundBrush}"/>
                                    </ObjectAnimationUsingKeyFrames>
                                </Storyboard>
                            </VisualState>
                            <VisualState x:Name="Disabled">
                                <Storyboard>
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderBrush" Storyboard.TargetName="CheckBackground">
                                        <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneDisabledBrush}"/>
                                    </ObjectAnimationUsingKeyFrames>
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Fill" Storyboard.TargetName="IndeterminateMark">
                                        <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneDisabledBrush}"/>
                                    </ObjectAnimationUsingKeyFrames>
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentContainer">
                                        <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneDisabledBrush}"/>
                                    </ObjectAnimationUsingKeyFrames>
                                </Storyboard>
                            </VisualState>
                        </VisualStateGroup>
                        <VisualStateGroup x:Name="CheckStates">
                            <VisualState x:Name="Checked">
                                <Storyboard>
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="CheckMark">
                                        <DiscreteObjectKeyFrame KeyTime="0">
                                            <DiscreteObjectKeyFrame.Value>
                                                <Visibility>Visible</Visibility>
                                            </DiscreteObjectKeyFrame.Value>
                                        </DiscreteObjectKeyFrame>
                                    </ObjectAnimationUsingKeyFrames>
                                </Storyboard>
                            </VisualState>
                            <VisualState x:Name="Unchecked"/>
                            <VisualState x:Name="Indeterminate">
                                <Storyboard>
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="IndeterminateMark">
                                        <DiscreteObjectKeyFrame KeyTime="0">
                                            <DiscreteObjectKeyFrame.Value>
                                                <Visibility>Visible</Visibility>
                                            </DiscreteObjectKeyFrame.Value>
                                        </DiscreteObjectKeyFrame>
                                    </ObjectAnimationUsingKeyFrames>
                                </Storyboard>
                            </VisualState>
                        </VisualStateGroup>
                    </VisualStateManager.VisualStateGroups>
                    <Grid Margin="{StaticResource PhoneTouchTargetLargeOverhang}">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="32"/>
                            <ColumnDefinition Width="*"/>
                        </Grid.ColumnDefinitions>
                        <Grid Grid.Column="0" VerticalAlignment="Top">
                            <Border x:Name="CheckBackground" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{StaticResource PhoneBorderThickness}" Background="{TemplateBinding Background}" HorizontalAlignment="Left" Height="32" IsHitTestVisible="False" VerticalAlignment="Center" Width="32"/>
                            <Rectangle x:Name="IndeterminateMark" Fill="{StaticResource PhoneRadioCheckBoxCheckBrush}" HorizontalAlignment="Center" Height="16" IsHitTestVisible="False" Visibility="Collapsed" VerticalAlignment="Center" Width="16"/>
                            <Path x:Name="CheckMark" Data="M0,123 L39,93 L124,164 L256,18 L295,49 L124,240 z" FlowDirection="LeftToRight" HorizontalAlignment="Center" Height="21" IsHitTestVisible="False" Stretch="Fill" StrokeThickness="3" StrokeLineJoin="Round" Visibility="Collapsed" VerticalAlignment="Center" Width="23" Fill="{StaticResource PhoneChromeBrush}"/>
                        </Grid>
                        <ContentControl x:Name="ContentContainer" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" Grid.Column="1" Foreground="{TemplateBinding Foreground}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="12,0,0,0" Padding="{TemplateBinding Padding}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"/>
                    </Grid>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

这篇关于我可以在LongListMultiSelector中更改CheckBox颜色吗? WP8的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆