2010-04-15 87 views
1

我想設置文本框的背景顏色爲使用樣式的焦點上的白色。 我啓用文本框有一個線性漸變背景默認:Silverlight 4設置焦點文本框的背景顏色

<Setter Property="Background"> 
     <Setter.Value> 
      <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1"> 
       <GradientStop Color="#e8e8e8" Offset="0.0" /> 
       <GradientStop Color="#f3f3f3" Offset="0.25" /> 
       <GradientStop Color="#f4f4f4" Offset="0.75" /> 
       <GradientStop Color="#f4f4f4" Offset="1.0" /> 
      </LinearGradientBrush> 
     </Setter.Value> 
    </Setter> 

我定義了一個可視聚焦狀態:

<VisualStateGroup x:Name="FocusStates"> 
          <VisualState x:Name="Focused"> 
           <Storyboard> 
            <DoubleAnimation  Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="Opacity" To="1" Duration="0"/> 
           </Storyboard> 
          </VisualState> 

這裏是控制模板的其餘部分:

<Border x:Name="Border" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="1" Opacity="1" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}"> 
         <Grid> 
          <Border x:Name="ReadOnlyVisualElement" Opacity="0" Background="#5EC9C9C9"/> 
          <Border x:Name="MouseOverBorder" BorderThickness="1" BorderBrush="Transparent"> 
           <ScrollViewer x:Name="ContentElement" Padding="{TemplateBinding Padding}" BorderThickness="0" IsTabStop="False"/> 
          </Border> 
         </Grid> 
        </Border> 
        <Border x:Name="DisabledVisualElement" Background="#A5D7D7D7" BorderBrush="#A5D7D7D7" BorderThickness="{TemplateBinding BorderThickness}" Opacity="0" IsHitTestVisible="False"/> 
        <Border x:Name="FocusVisualElement" Background="#A5ffffff" BorderBrush="#FF72c1ec" BorderThickness="{TemplateBinding BorderThickness}" Margin="1" Opacity="0" IsHitTestVisible="False"/> 

在最後一個邊框標籤上,我試圖將背景設置爲白色(#ffffff)。現在我在A5的不透明度確實將背景變成了白色,但是它也開始模糊框中的文字。任何更高的不透明度都會使文本不可見,所以我很確定設置該邊框的背景不是正確的方式。

我可以通過StoryBoard以某種方式設置ContentElement的背景顏色嗎?

謝謝。

回答

0

您是否嘗試過使用ColorAnimation?