2012-12-05 156 views
1

作爲標題,當用戶懸停以選擇展開的列表框中的項目時,會突出顯示該文本的背景色。我怎樣才能改變背景顏色?我試圖通過編輯模板試幾件事,但我很難得到它...當用戶懸停該項目時,更改silverlight AutoCompleteBox的顏色

<Style x:Key="AutoCompleteBoxStyle1" TargetType="sdk:AutoCompleteBox"> 
    <Setter Property="IsTabStop" Value="False"/> 
    <Setter Property="Padding" Value="2"/> 
    <Setter Property="BorderThickness" Value="1"/> 
    <Setter Property="BorderBrush" Value="{StaticResource MainBrush}" /> 
    <Setter Property="Background" Value="{StaticResource MarkerBrush}" /> 
    <Setter Property="Foreground" Value="{StaticResource BasicBrush}"/> 
    <Setter Property="MinWidth" Value="45"/> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="sdk:AutoCompleteBox"> 
       <Grid Opacity="{TemplateBinding Opacity}"> 
        <VisualStateManager.VisualStateGroups> 
         <VisualStateGroup x:Name="PopupStates"> 
          <VisualStateGroup.Transitions> 
           <VisualTransition GeneratedDuration="0:0:0.1" To="PopupOpened"/> 
           <VisualTransition GeneratedDuration="0:0:0.2" To="PopupClosed"/> 
          </VisualStateGroup.Transitions> 
          <VisualState x:Name="PopupOpened"> 
           <Storyboard> 
            <DoubleAnimation To="1.0" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="PopupBorder"/> 
           </Storyboard> 
          </VisualState> 
          <VisualState x:Name="PopupClosed"> 
           <Storyboard> 
            <DoubleAnimation To="0.0" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="PopupBorder"/> 
           </Storyboard> 
          </VisualState> 
         </VisualStateGroup> 
         <VisualStateGroup x:Name="ValidationStates"> 
          <VisualState x:Name="Valid"/> 
          <VisualState x:Name="InvalidUnfocused"> 
           <Storyboard> 
            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="ValidationErrorElement"> 
             <DiscreteObjectKeyFrame KeyTime="0"> 
              <DiscreteObjectKeyFrame.Value> 
               <Visibility>Visible</Visibility> 
              </DiscreteObjectKeyFrame.Value> 
             </DiscreteObjectKeyFrame> 
            </ObjectAnimationUsingKeyFrames> 
           </Storyboard> 
          </VisualState> 
          <VisualState x:Name="InvalidFocused"> 
           <Storyboard> 
            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="ValidationErrorElement"> 
             <DiscreteObjectKeyFrame KeyTime="0"> 
              <DiscreteObjectKeyFrame.Value> 
               <Visibility>Visible</Visibility> 
              </DiscreteObjectKeyFrame.Value> 
             </DiscreteObjectKeyFrame> 
            </ObjectAnimationUsingKeyFrames> 
            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="IsOpen" Storyboard.TargetName="validationTooltip"> 
             <DiscreteObjectKeyFrame KeyTime="0"> 
              <DiscreteObjectKeyFrame.Value> 
               <System:Boolean>True</System:Boolean> 
              </DiscreteObjectKeyFrame.Value> 
             </DiscreteObjectKeyFrame> 
            </ObjectAnimationUsingKeyFrames> 
           </Storyboard> 
          </VisualState> 
         </VisualStateGroup> 
        </VisualStateManager.VisualStateGroups> 
        <TextBox x:Name="Text" IsTabStop="True" Margin="0" Style="{StaticResource TextBoxStyle}"/> 
        <Border x:Name="ValidationErrorElement" BorderBrush="#FFDB000C" BorderThickness="1" CornerRadius="1" Visibility="Collapsed"> 
         <ToolTipService.ToolTip> 
          <ToolTip x:Name="validationTooltip" DataContext="{Binding RelativeSource={RelativeSource TemplatedParent}}" Placement="Right" PlacementTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}" Template="{StaticResource CommonValidationToolTipTemplate}"> 
           <ToolTip.Triggers> 
            <EventTrigger RoutedEvent="Canvas.Loaded"> 
             <BeginStoryboard> 
              <Storyboard> 
               <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="IsHitTestVisible" Storyboard.TargetName="validationTooltip"> 
                <DiscreteObjectKeyFrame KeyTime="0"> 
                 <DiscreteObjectKeyFrame.Value> 
                  <System:Boolean>true</System:Boolean> 
                 </DiscreteObjectKeyFrame.Value> 
                </DiscreteObjectKeyFrame> 
               </ObjectAnimationUsingKeyFrames> 
              </Storyboard> 
             </BeginStoryboard> 
            </EventTrigger> 
           </ToolTip.Triggers> 
          </ToolTip> 
         </ToolTipService.ToolTip> 
         <Grid Background="Transparent" HorizontalAlignment="Right" Height="12" Margin="1,-4,-4,0" VerticalAlignment="Top" Width="12"> 
          <Path Data="M 1,0 L6,0 A 2,2 90 0 1 8,2 L8,7 z" Fill="#FFDC000C" Margin="1,3,0,0"/> 
          <Path Data="M 0,0 L2,0 L 8,6 L8,8" Fill="#ffffff" Margin="1,3,0,0"/> 
         </Grid> 
        </Border> 
        <Popup x:Name="Popup"> 
         <Grid Opacity="{TemplateBinding Opacity}"> 

          <Border x:Name="PopupBorder" BorderThickness="0" Background="{TemplateBinding Background}" HorizontalAlignment="Stretch" Opacity="0"> 
           <Border.RenderTransform> 
            <TranslateTransform X="1" Y="1"/> 
           </Border.RenderTransform> 
           <Border BorderBrush="{StaticResource StrongBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="0" HorizontalAlignment="Stretch" Opacity="1.0" Padding="0"> 
            <Border.Background> 
             <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
              <GradientStop Color="#FFDDDDDD" Offset="0"/> 
              <GradientStop Color="#AADDDDDD" Offset="1"/> 
             </LinearGradientBrush> 
            </Border.Background> 
            <Border.RenderTransform> 
             <TransformGroup> 
              <TranslateTransform X="-1" Y="-1"/> 
             </TransformGroup> 
            </Border.RenderTransform> 
            <ListBox x:Name="Selector" BorderThickness="0" Background="Transparent" Foreground="{StaticResource StrongBrush}" ItemTemplate="{TemplateBinding ItemTemplate}" ItemContainerStyle="{TemplateBinding ItemContainerStyle}" ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Auto"/> 

           </Border> 
          </Border> 
         </Grid> 
        </Popup> 
       </Grid> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

在此先感謝。

+0

+1有趣的問題 –

回答

1

你應該嘗試這

<Style TargetType="input:AutoCompleteBox"> 
<Setter Property="IsTabStop" Value="False" /> 
<Setter Property="Padding" Value="2" /> 
<Setter Property="BorderThickness" Value="1" /> 
<Setter Property="BorderBrush"> 
    <Setter.Value> 
     <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
      <GradientStop Color="#FFA3AEB9" Offset="0" /> 
      <GradientStop Color="#FF8399A9" Offset="0.375" /> 
      <GradientStop Color="#FF718597" Offset="0.375" /> 
      <GradientStop Color="#FF617584" Offset="1" /> 
     </LinearGradientBrush> 
    </Setter.Value> 
</Setter> 
<Setter Property="Background" Value="#FFFFFFFF" /> 
<Setter Property="Foreground" Value="#FF000000" /> 
<Setter Property="MinWidth" Value="45" /> 
<Setter Property="Template"> 
    <Setter.Value> 
     <ControlTemplate TargetType="input:AutoCompleteBox"> 
      <Grid Opacity="{TemplateBinding Opacity}"> 
       <TextBox Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}" IsTabStop="True" x:Name="Text" Style="{TemplateBinding TextBoxStyle}" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" Foreground="{TemplateBinding Foreground}" Margin="0" /> 
       <Border x:Name="ValidationErrorElement" Visibility="Collapsed" BorderBrush="#FFDB000C" BorderThickness="1" CornerRadius="1"> 
        <ToolTipService.ToolTip> 
         <ToolTip x:Name="validationTooltip" DataContext="{Binding RelativeSource={RelativeSource TemplatedParent}}" Template="{StaticResource CommonValidationToolTipTemplate}" Placement="Right" PlacementTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}"> 
          <ToolTip.Triggers> 
           <EventTrigger RoutedEvent="Canvas.Loaded"> 
            <BeginStoryboard> 
             <Storyboard> 
              <ObjectAnimationUsingKeyFrames Storyboard.TargetName="validationTooltip" Storyboard.TargetProperty="IsHitTestVisible"> 
               <DiscreteObjectKeyFrame KeyTime="0"> 
                <DiscreteObjectKeyFrame.Value> 
                 <system:Boolean>true</system:Boolean> 
                </DiscreteObjectKeyFrame.Value> 
               </DiscreteObjectKeyFrame> 
              </ObjectAnimationUsingKeyFrames> 
             </Storyboard> 
            </BeginStoryboard> 
           </EventTrigger> 
          </ToolTip.Triggers> 
         </ToolTip> 
        </ToolTipService.ToolTip> 
        <Grid Height="12" HorizontalAlignment="Right" Margin="1,-4,-4,0" VerticalAlignment="Top" Width="12" Background="Transparent"> 
         <Path Fill="#FFDC000C" Margin="1,3,0,0" Data="M 1,0 L6,0 A 2,2 90 0 1 8,2 L8,7 z" /> 
         <Path Fill="#ffffff" Margin="1,3,0,0" Data="M 0,0 L2,0 L 8,6 L8,8" /> 
        </Grid> 
       </Border> 
       <Popup x:Name="Popup"> 
        <Grid Opacity="{TemplateBinding Opacity}"> 
        <Border x:Name="PopupBorder" HorizontalAlignment="Stretch" Opacity="0" BorderThickness="0"> 
         <Border.RenderTransform> 
          <TranslateTransform X="1" Y="1" /> 
         </Border.RenderTransform> 
         <Border.Background> 
          <SolidColorBrush Color="#11000000" /> 
         </Border.Background> 
          <Border HorizontalAlignment="Stretch" Opacity="1.0" Padding="0" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" CornerRadius="0"> 
            <Border.RenderTransform> 
             <TransformGroup> 
              <TranslateTransform X="-1" Y="-1" /> 
             </TransformGroup> 
            </Border.RenderTransform> 
            <Border.Background> 
             <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
              <GradientStop Color="#FFDDDDDD" Offset="0" /> 
              <GradientStop Color="#AADDDDDD" Offset="1" /> 
             </LinearGradientBrush> 
            </Border.Background> 
            <ListBox x:Name="Selector" ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Auto" ItemContainerStyle="{TemplateBinding ItemContainerStyle}" Background="{TemplateBinding Background}" Foreground="{TemplateBinding Foreground}" BorderThickness="0" ItemTemplate="{TemplateBinding ItemTemplate}" /> 
          </Border> 
         </Border> 
        </Grid> 
       </Popup> 
       <VisualStateManager.VisualStateGroups> 
        <VisualStateGroup x:Name="PopupStates"> 
         <VisualStateGroup.Transitions> 
          <VisualTransition GeneratedDuration="0:0:0.1" To="PopupOpened" /> 
          <VisualTransition GeneratedDuration="0:0:0.2" To="PopupClosed" /> 
         </VisualStateGroup.Transitions> 
         <VisualState x:Name="PopupOpened"> 
          <Storyboard> 
           <DoubleAnimation Storyboard.TargetName="PopupBorder" Storyboard.TargetProperty="Opacity" To="1.0" /> 
          </Storyboard> 
         </VisualState> 
         <VisualState x:Name="PopupClosed"> 
          <Storyboard> 
           <DoubleAnimation Storyboard.TargetName="PopupBorder" Storyboard.TargetProperty="Opacity" To="0.0" /> 
          </Storyboard> 
         </VisualState> 
        </VisualStateGroup> 
        <VisualStateGroup x:Name="ValidationStates"> 
         <VisualState x:Name="Valid" /> 
         <VisualState x:Name="InvalidUnfocused"> 
          <Storyboard> 
           <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ValidationErrorElement" Storyboard.TargetProperty="Visibility"> 
            <DiscreteObjectKeyFrame KeyTime="0"> 
             <DiscreteObjectKeyFrame.Value> 
              <Visibility>Visible</Visibility> 
             </DiscreteObjectKeyFrame.Value> 
            </DiscreteObjectKeyFrame> 
           </ObjectAnimationUsingKeyFrames> 
          </Storyboard> 
         </VisualState> 
         <VisualState x:Name="InvalidFocused"> 
          <Storyboard> 
           <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ValidationErrorElement" Storyboard.TargetProperty="Visibility"> 
            <DiscreteObjectKeyFrame KeyTime="0"> 
             <DiscreteObjectKeyFrame.Value> 
              <Visibility>Visible</Visibility> 
             </DiscreteObjectKeyFrame.Value> 
            </DiscreteObjectKeyFrame> 
           </ObjectAnimationUsingKeyFrames> 
           <ObjectAnimationUsingKeyFrames Storyboard.TargetName="validationTooltip" Storyboard.TargetProperty="IsOpen"> 
            <DiscreteObjectKeyFrame KeyTime="0"> 
             <DiscreteObjectKeyFrame.Value> 
              <system:Boolean>True</system:Boolean> 
             </DiscreteObjectKeyFrame.Value> 
            </DiscreteObjectKeyFrame> 
           </ObjectAnimationUsingKeyFrames> 
          </Storyboard> 
         </VisualState> 
        </VisualStateGroup> 
       </VisualStateManager.VisualStateGroups> 
      </Grid> 
     </ControlTemplate> 
    </Setter.Value> 
</Setter>