2011-05-24 72 views
0

我試圖在文本框有焦點時在簡單的文本框上設置背景邊界刷。觸發器設置wpf文本框邊界刷不工作

這是我的風格

<Style x:Key="TextBoxStyle" TargetType="TextBox"> 
<Style.Triggers> 
<Trigger Property="IsFocused" Value="False"> 
    <Setter Property="BorderBrush" Value="Blue"/> 
</Trigger> 
<Trigger Property="IsFocused" Value="True"> 
    <Setter Property="BorderBrush" Value="Red"/> 
    <!--<Setter Property="Background" Value="Red"/>--> 
</Trigger> 

IsFocus =假工作正常但是觸發真正的犯規。

我已經註釋掉了背景設置器,但是如果我取消註釋,我可以看到背景被設置爲紅色。

當文本框具有焦點時,需要做些什麼改變邊框顏色?

謝謝。

回答

1

如果您的BorderThickness爲「1」(默認值),那麼您獲得的對焦風格是標準3D控件。你可以使用一個contenttemplate來重新設置控件,但是簡單的(儘管不是最優雅的解決方案)就是簡單地將邊框粗細設置爲「1」以外的值,正如我在下面的示例中所做的那樣。

<TextBox Width="200" Height="25" BorderThickness="0.99"> 
<TextBox.Style> 
    <Style TargetType="{x:Type TextBox}"> 
     <Setter Property="BorderBrush" Value="Red" /> 
     <Style.Triggers> 
      <Trigger Property="IsFocused" Value="False"> 
       <Setter Property="BorderBrush" Value="Blue" /> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
</TextBox.Style>