2011-12-30 59 views
-1

我想更改Silverlight擴展器的背景顏色。我如何更改silverlight擴展器的背景色?

它看起來如下。

enter image description here

如何修改下面的模板背景顏色設置爲白色?

Expander的屬性將做什麼我設置爲更改擴展器的背景顏色。 及其XAML代碼如下。

<Style x:Key="MyExpanderStyle" TargetType="controlsToolkit:Expander"> 
     <Setter Property="ExpandDirection" Value="Down"></Setter> 
     <Setter Property="IsEnabled" Value="True"></Setter> 
     <Setter Property="Width" Value="Auto"></Setter> 
     <Setter Property="Height" Value="Auto"></Setter> 
     <Setter Property="HorizontalAlignment" Value="Left"></Setter> 
     <Setter Property="Margin" Value="0,10,0,3"></Setter> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="controlsToolkit:Expander"> 
        <Grid Background="Transparent"> 
         <Grid.Resources> 
          <LinearGradientBrush x:Key="ExpanderArrowFill" EndPoint="0,1" StartPoint="0,0"> 
           <GradientStop Color="#0098D4" Offset="0"/> 
           <GradientStop Color="#0098D4" Offset="0.5"/> 
           <GradientStop Color="#0098D4" Offset="1"/> 
          </LinearGradientBrush> 
          <LinearGradientBrush x:Key="ExpanderArrowHoverFill" EndPoint="0,1" StartPoint="0,0"> 
           <GradientStop Color="#FFF0F8FE" Offset="0"/> 
           <GradientStop Color="#FFE0F3FE" Offset="0.3"/> 
           <GradientStop Color="#FF6FA7C5" Offset="1"/> 
          </LinearGradientBrush> 
          <LinearGradientBrush x:Key="ExpanderArrowPressedFill" EndPoint="0,1" StartPoint="0,0"> 
           <GradientStop Color="#FFDCF0FA" Offset="0"/> 
           <GradientStop Color="#FFC5E6F7" Offset="0.2"/> 
           <GradientStop Color="#FF5690D0" Offset="1"/> 
          </LinearGradientBrush> 
          <ControlTemplate x:Key="ExpanderDownHeaderTemplate" TargetType="ToggleButton"> 
           <Grid Background="Transparent"> 
            <VisualStateManager.VisualStateGroups> 
             <VisualStateGroup x:Name="CheckStates"> 
              <VisualStateGroup.Transitions> 
               <VisualTransition GeneratedDuration="00:00:00"/> 
              </VisualStateGroup.Transitions> 
              <VisualState x:Name="Checked"> 
               <Storyboard> 
                <ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="arrow" Storyboard.TargetProperty="Data"> 
                 <DiscreteObjectKeyFrame KeyTime="0" Value="M 1,4.5 L 4.5,1 L 8,4.5"/> 
                </ObjectAnimationUsingKeyFrames> 
               </Storyboard> 
              </VisualState> 
              <VisualState x:Name="Unchecked"/> 
             </VisualStateGroup> 
             <VisualStateGroup x:Name="CommonStates"> 
              <VisualStateGroup.Transitions> 
               <VisualTransition GeneratedDuration="0"/> 
               <VisualTransition GeneratedDuration="00:00:00.1" To="MouseOver"/> 
               <VisualTransition GeneratedDuration="00:00:00.1" To="Pressed"/> 
              </VisualStateGroup.Transitions> 
              <VisualState x:Name="Normal"/> 
              <VisualState x:Name="MouseOver"> 
               <Storyboard> 
                <ColorAnimation BeginTime="0" Storyboard.TargetName="circle" Storyboard.TargetProperty="(Ellipse.Stroke).(SolidColorBrush.Color)" To="#FF3C7FB1"/> 
                <ObjectAnimationUsingKeyFrames Storyboard.TargetName="circle" Storyboard.TargetProperty="(Ellipse.Fill)"> 
                 <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ExpanderArrowHoverFill}"/> 
                </ObjectAnimationUsingKeyFrames> 
                <ColorAnimation BeginTime="0" Storyboard.TargetName="arrow" Storyboard.TargetProperty="(Path.Stroke).(SolidColorBrush.Color)" To="#222"/> 
               </Storyboard> 
              </VisualState> 
              <VisualState x:Name="Pressed"> 
               <Storyboard> 
                <ColorAnimation BeginTime="0" Storyboard.TargetName="circle" Storyboard.TargetProperty="(Ellipse.Stroke).(SolidColorBrush.Color)" To="# "/> 
                <DoubleAnimation BeginTime="0" Storyboard.TargetName="circle" Storyboard.TargetProperty="StrokeThickness" To="1.5"/> 
                <ObjectAnimationUsingKeyFrames Storyboard.TargetName="circle" Storyboard.TargetProperty="(Ellipse.Fill)"> 
                 <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ExpanderArrowPressedFill}"/> 
                </ObjectAnimationUsingKeyFrames> 
                <ColorAnimation BeginTime="0" Storyboard.TargetName="arrow" Storyboard.TargetProperty="(Path.Stroke).(SolidColorBrush.Color)" To="#FF003366"/> 
               </Storyboard> 
              </VisualState> 
             </VisualStateGroup> 
             <VisualStateGroup x:Name="FocusStates"> 
              <VisualState x:Name="Focused"> 
               <Storyboard> 
                <ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="Visibility"> 
                 <DiscreteObjectKeyFrame KeyTime="0" Value="Visible"/> 
                </ObjectAnimationUsingKeyFrames> 
               </Storyboard> 
              </VisualState> 
              <VisualState x:Name="Unfocused"/> 
             </VisualStateGroup> 
            </VisualStateManager.VisualStateGroups> 
            <Border Padding="{TemplateBinding Padding}"> 
             <Grid Background="Transparent"> 
              <Grid.ColumnDefinitions> 
               <ColumnDefinition Width="15"/> 
               <ColumnDefinition Width="*"/> 
              </Grid.ColumnDefinitions> 
              <Grid HorizontalAlignment="Left" VerticalAlignment="Top"> 
               <Ellipse x:Name="circle" Fill="{StaticResource ExpanderArrowFill}" Stroke="Transparent" Height="15" HorizontalAlignment="Center" VerticalAlignment="Center" Width="15"/> 
               <Path x:Name="arrow" Stroke="White" StrokeThickness="2" HorizontalAlignment="Center" VerticalAlignment="Center" Data="M 1,1.5 L 4.5,5 L 8,1.5"/> 
              </Grid> 
              <ContentPresenter x:Name="header" HorizontalAlignment="Stretch" Margin="4,0,0,0" VerticalAlignment="Center" Grid.Column="1" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}"/> 
             </Grid> 
            </Border> 
            <Rectangle x:Name="FocusVisualElement" Stroke="#FF448DCA" StrokeThickness="1" IsHitTestVisible="false" Visibility="Collapsed"/> 
           </Grid> 
          </ControlTemplate> 
          <ControlTemplate x:Key="ExpanderUpHeaderTemplate" TargetType="ToggleButton"> 
           <Grid Background="Transparent"> 
            <VisualStateManager.VisualStateGroups> 
             <VisualStateGroup x:Name="CheckStates"> 
              <VisualStateGroup.Transitions> 
               <VisualTransition GeneratedDuration="00:00:00"/> 
              </VisualStateGroup.Transitions> 
              <VisualState x:Name="Checked"> 
               <Storyboard> 
                <ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="arrow" Storyboard.TargetProperty="Data"> 
                 <DiscreteObjectKeyFrame KeyTime="0" Value="M 1,4.5 L 4.5,1 L 8,4.5"/> 
                </ObjectAnimationUsingKeyFrames> 
               </Storyboard> 
              </VisualState> 
              <VisualState x:Name="Unchecked"/> 
             </VisualStateGroup> 
             <VisualStateGroup x:Name="CommonStates"> 
              <VisualStateGroup.Transitions> 
               <VisualTransition GeneratedDuration="0"/> 
               <VisualTransition GeneratedDuration="00:00:00.1" To="MouseOver"/> 
               <VisualTransition GeneratedDuration="00:00:00.1" To="Pressed"/> 
              </VisualStateGroup.Transitions> 
              <VisualState x:Name="Normal"/> 
              <VisualState x:Name="MouseOver"> 
               <Storyboard> 
                <ColorAnimation BeginTime="0" Storyboard.TargetName="circle" Storyboard.TargetProperty="(Ellipse.Stroke).(SolidColorBrush.Color)" To="#FF3C7FB1"/> 
                <ObjectAnimationUsingKeyFrames Storyboard.TargetName="circle" Storyboard.TargetProperty="(Ellipse.Fill)"> 
                 <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ExpanderArrowHoverFill}"/> 
                </ObjectAnimationUsingKeyFrames> 
                <ColorAnimation BeginTime="0" Storyboard.TargetName="arrow" Storyboard.TargetProperty="(Path.Stroke).(SolidColorBrush.Color)" To="#222"/> 
               </Storyboard> 
              </VisualState> 
              <VisualState x:Name="Pressed"> 
               <Storyboard> 
                <ColorAnimation BeginTime="0" Storyboard.TargetName="circle" Storyboard.TargetProperty="(Ellipse.Stroke).(SolidColorBrush.Color)" To="#FF526C7B"/> 
                <DoubleAnimation BeginTime="0" Storyboard.TargetName="circle" Storyboard.TargetProperty="StrokeThickness" To="1.5"/> 
                <ObjectAnimationUsingKeyFrames Storyboard.TargetName="circle" Storyboard.TargetProperty="(Ellipse.Fill)"> 
                 <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ExpanderArrowPressedFill}"/> 
                </ObjectAnimationUsingKeyFrames> 
                <ColorAnimation BeginTime="0" Storyboard.TargetName="arrow" Storyboard.TargetProperty="(Path.Stroke).(SolidColorBrush.Color)" To="#FF003366"/> 
               </Storyboard> 
              </VisualState> 
             </VisualStateGroup> 
             <VisualStateGroup x:Name="FocusStates"> 
              <VisualState x:Name="Focused"> 
               <Storyboard> 
                <ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="Visibility"> 
                 <DiscreteObjectKeyFrame KeyTime="0" Value="Visible"/> 
                </ObjectAnimationUsingKeyFrames> 
               </Storyboard> 
              </VisualState> 
              <VisualState x:Name="Unfocused"/> 
             </VisualStateGroup> 
            </VisualStateManager.VisualStateGroups> 
            <Border Padding="{TemplateBinding Padding}"> 
             <Grid Background="Transparent"> 
              <Grid.ColumnDefinitions> 
               <ColumnDefinition Width="19"/> 
               <ColumnDefinition Width="*"/> 
              </Grid.ColumnDefinitions> 
              <Grid HorizontalAlignment="Left" VerticalAlignment="Top"> 
               <Grid.RenderTransform> 
                <TransformGroup> 
                 <TransformGroup.Children> 
                  <TransformCollection> 
                   <RotateTransform Angle="180" CenterX="9.5" CenterY="9.5"/> 
                  </TransformCollection> 
                 </TransformGroup.Children> 
                </TransformGroup> 
               </Grid.RenderTransform> 
               <Ellipse x:Name="circle" Fill="{StaticResource ExpanderArrowFill}" Stroke="DarkGray" Height="19" HorizontalAlignment="Center" VerticalAlignment="Center" Width="19"/> 
               <Path x:Name="arrow" Stroke="#666" StrokeThickness="2" HorizontalAlignment="Center" VerticalAlignment="Center" Data="M 1,1.5 L 4.5,5 L 8,1.5"/> 
              </Grid> 
              <ContentPresenter x:Name="header" HorizontalAlignment="Stretch" Margin="4,0,0,0" VerticalAlignment="Center" Grid.Column="1" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}"/> 
             </Grid> 
            </Border> 
            <Rectangle x:Name="FocusVisualElement" Stroke="#FF448DCA" StrokeThickness="1" IsHitTestVisible="false" Visibility="Collapsed"/> 
           </Grid> 
          </ControlTemplate> 
         </Grid.Resources> 
         <VisualStateManager.VisualStateGroups> 
          <VisualStateGroup x:Name="CommonStates"> 
           <VisualStateGroup.Transitions> 
            <VisualTransition GeneratedDuration="0"/> 
           </VisualStateGroup.Transitions> 
           <VisualState x:Name="Normal"/> 
           <VisualState x:Name="Disabled"> 
            <Storyboard> 
             <DoubleAnimation Duration="0" Storyboard.TargetName="DisabledVisualElement" Storyboard.TargetProperty="(UIElement.Opacity)" To="1"/> 
            </Storyboard> 
           </VisualState> 
          </VisualStateGroup> 
          <VisualStateGroup x:Name="FocusStates"> 
           <VisualState x:Name="Focused"> 
            <Storyboard> 
             <ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="Visibility"> 
              <DiscreteObjectKeyFrame KeyTime="0" Value="Visible"/> 
             </ObjectAnimationUsingKeyFrames> 
            </Storyboard> 
           </VisualState> 
           <VisualState x:Name="Unfocused"/> 
          </VisualStateGroup> 
          <VisualStateGroup x:Name="ExpansionStates"> 
           <VisualStateGroup.Transitions> 
            <VisualTransition GeneratedDuration="0"/> 
           </VisualStateGroup.Transitions> 
           <VisualState x:Name="Collapsed"/> 
           <VisualState x:Name="Expanded"> 
            <Storyboard> 
             <ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="ExpandSite" Storyboard.TargetProperty="Visibility"> 
              <DiscreteObjectKeyFrame KeyTime="0" Value="Visible"/> 
             </ObjectAnimationUsingKeyFrames> 
            </Storyboard> 
           </VisualState> 
          </VisualStateGroup> 
          <VisualStateGroup x:Name="ExpandDirectionStates"> 
           <VisualStateGroup.Transitions> 
            <VisualTransition GeneratedDuration="0"/> 
           </VisualStateGroup.Transitions> 
           <VisualState x:Name="ExpandDown"> 
            <Storyboard> 
             <ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="rd1" Storyboard.TargetProperty="Height"> 
              <DiscreteObjectKeyFrame KeyTime="0" Value="*"/> 
             </ObjectAnimationUsingKeyFrames> 
             <ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="cd0" Storyboard.TargetProperty="Width"> 
              <DiscreteObjectKeyFrame KeyTime="0" Value="*"/> 
             </ObjectAnimationUsingKeyFrames> 
            </Storyboard> 
           </VisualState> 
           <VisualState x:Name="ExpandUp"> 
            <Storyboard> 
             <ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="ExpanderButton" Storyboard.TargetProperty="Template"> 
              <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ExpanderUpHeaderTemplate}"/> 
             </ObjectAnimationUsingKeyFrames> 
             <ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="ExpanderButton" Storyboard.TargetProperty="(Grid.Row)"> 
              <DiscreteObjectKeyFrame KeyTime="0" Value="1"/> 
             </ObjectAnimationUsingKeyFrames> 
             <ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="ExpandSite" Storyboard.TargetProperty="(Grid.Row)"> 
              <DiscreteObjectKeyFrame KeyTime="0" Value="0"/> 
             </ObjectAnimationUsingKeyFrames> 
             <ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="rd0" Storyboard.TargetProperty="Height"> 
              <DiscreteObjectKeyFrame KeyTime="0" Value="*"/> 
             </ObjectAnimationUsingKeyFrames> 
             <ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetName="cd0" Storyboard.TargetProperty="Width"> 
              <DiscreteObjectKeyFrame KeyTime="0" Value="*"/> 
             </ObjectAnimationUsingKeyFrames> 
            </Storyboard> 
           </VisualState> 
          </VisualStateGroup> 
         </VisualStateManager.VisualStateGroups> 
         <Border x:Name="Background" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="3"> 
          <Grid> 
           <Grid.ColumnDefinitions> 
            <ColumnDefinition x:Name="cd0" Width="Auto"/> 
            <ColumnDefinition x:Name="cd1" Width="Auto"/> 
           </Grid.ColumnDefinitions> 
           <Grid.RowDefinitions> 
            <RowDefinition x:Name="rd0" Height="Auto"/> 
            <RowDefinition x:Name="rd1" Height="Auto"/> 
           </Grid.RowDefinitions> 
           <ToggleButton x:Name="ExpanderButton" Margin="1" MinHeight="0" MinWidth="0" FontFamily="{TemplateBinding FontFamily}" FontSize="{TemplateBinding FontSize}" FontStretch="{TemplateBinding FontStretch}" FontStyle="{TemplateBinding FontStyle}" FontWeight="{TemplateBinding FontWeight}" Foreground="{TemplateBinding Foreground}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" Padding="{TemplateBinding Padding}" Template="{StaticResource ExpanderDownHeaderTemplate}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" Grid.Column="0" Grid.Row="0" Content="{TemplateBinding Header}" ContentTemplate="{TemplateBinding HeaderTemplate}" IsChecked="{TemplateBinding IsExpanded}" BorderBrush="{x:Null}"/> 
           <ContentControl x:Name="ExpandSite" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Visibility="Collapsed" FontFamily="{TemplateBinding FontFamily}" FontSize="{TemplateBinding FontSize}" FontStretch="{TemplateBinding FontStretch}" FontStyle="{TemplateBinding FontStyle}" FontWeight="{TemplateBinding FontWeight}" Foreground="{TemplateBinding Foreground}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" Grid.Column="0" Grid.Row="1" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}"/> 
          </Grid> 
         </Border> 
         <Border x:Name="DisabledVisualElement" IsHitTestVisible="false" Opacity="0" Background="Transparent" CornerRadius="3"/> 
         <Border x:Name="FocusVisualElement" IsHitTestVisible="false" Visibility="Collapsed" BorderThickness="1" CornerRadius="3"> 
          <!--<Border.BorderBrush> 
           <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
            <GradientStop Color="#FFA3AEB9"/> 
            <GradientStop Color="#FF8399A9" Offset="0.375"/> 
            <GradientStop Color="#FF718597" Offset="0.375"/> 
            <GradientStop Color="#FF617584" Offset="1"/> 
           </LinearGradientBrush> 
          </Border.BorderBrush>--> 
         </Border> 
        </Grid> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 

回答

0

我猜Expander控件具有通過TemplateBinding一定到它的內置的邊境控制這裏的background屬性:

<Border x:Name="Background" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="3"> 
         <Grid> 
          <Grid.ColumnDefinitions> 
          ... 

嘗試通過添加設置膨脹機控制的相應背景屬性下面一行的擴展樣式(與你的顏色替換#000000):

<Setter Property="Background" Value="#000000"></Setter> 

希望這樣的作品, 歡呼

+0

它爲我工作。 – 2012-01-04 06:22:37