2013-07-22 6 views
2

Windows Phone 8에서 LongListMultiSelector의 CheckBox의 색을 변경해야합니다. 배경이 흰색이므로 가능합니다.LongListMultiSelector에서 CheckBox 색상을 변경할 수 있습니까? WP8

감사합니다. 먼저 Visual Studio에서 문서 개요에서 longlistselector 마우스 오른쪽 버튼으로 클릭하여 ItemContainerSyle을 편집 한 다음 편집 추가 스타일을 선택해야 그렇게하기 위해

CheckBox image

+0

당신이 마법처럼 –

답변

9

은 -> 편집 ItemContainerSyle -> 만들기 빈

그런 다음 생성 된 템플릿의 setter를 codeplex의 원래 setter 코드로 바꿔야합니다.

다음 세터 코드는 확인란을 중심으로하고 회색한다 : (그들은 모바일의 자원에서 상속 이후)

<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> 

지금 확인란이 회색하지만 실제 진드기 안에 여전히 흰색 될 것으로 나타납니다 .

같은 방법으로 확인란 스타일을 편집 할 수 있습니다. 다음 코드는 틱 회색 것 :

<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> 
+0

일이 내 기쁨, 문제 –

+0

.Thanks 없습니다 .. 상자의 색상을 변경하고 텍스트의 전경색을 변경하는 배경 색상을 변경할 수 있습니다 :) –

+0

감사합니다. 나도 도와 줬어. – James

관련 문제