たとえば、Facebook では、テキスト ボックスが空の場合、検索テキスト ボックスに「検索」のヒント テキストが表示されます。
WPF テキスト ボックスでこれを実現するにはどうすればよいでしょうか?
ベストアンサー1
VisualBrush
と 内のいくつかのトリガーを使用すると、これをはるかに簡単に実現できますStyle
。
<TextBox>
<TextBox.Style>
<Style TargetType="TextBox" xmlns:sys="clr-namespace:System;assembly=mscorlib">
<Style.Resources>
<VisualBrush x:Key="CueBannerBrush" AlignmentX="Left" AlignmentY="Center" Stretch="None">
<VisualBrush.Visual>
<Label Content="Search" Foreground="LightGray" />
</VisualBrush.Visual>
</VisualBrush>
</Style.Resources>
<Style.Triggers>
<Trigger Property="Text" Value="{x:Static sys:String.Empty}">
<Setter Property="Background" Value="{StaticResource CueBannerBrush}" />
</Trigger>
<Trigger Property="Text" Value="{x:Null}">
<Setter Property="Background" Value="{StaticResource CueBannerBrush}" />
</Trigger>
<Trigger Property="IsKeyboardFocused" Value="True">
<Setter Property="Background" Value="White" />
</Trigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
この再利用性を高めるためにStyle
、実際のキュー バナーのテキスト、色、方向などを制御する添付プロパティのセットを作成することもできます。