开发者

Not able to Style my WPF Controls

I am going crazy here! What am I missing and why it is not styling anything:

<Style x:Key="textBoxStyle" TargetType="{x:Type TextBox}">
                <Style.Triggers>
                    <Trigger Property="IsFocused" Value="True">
                        <Setter Property="Background" Value="Red" />
                    </Trigger>
开发者_Python百科                </Style.Triggers>
            </Style>

    <TextBox Width="100" Style="{StaticResource textBoxStyle}" Height="20" Background="Yellow" ></TextBox>

The above code does not do anything. It does not highlight the TextBox control!


This occurs because local values override style values. (Properties set directly on an element have very high precedence.) You are setting Background directly on the TextBox, so WPF is going, "Well, he normally wants textBoxStyle backgrounds to be Red when focused, but for this particular TextBox, he's said he specifically wants Background to be Yellow, so Yellow it is."

So the fix is to move the Yellow background to be part of the Style:

<Style x:Key="textBoxStyle" TargetType="{x:Type TextBox}">
  <Setter Property="Background" Value="Yellow" />
  <Style.Triggers>
    <Trigger Property="IsFocused" Value="True">
      <Setter Property="Background" Value="Red" />
    </Trigger>
  </Style.Triggers>
</Style>

and remove it from the TextBox:

<TextBox Width="100" Style="{StaticResource textBoxStyle}" Height="20" />


Define your Style before the TextBox or use DynamicResource instead of StaticResource

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜