WPF テキストボックスにヒントテキストを追加するにはどうすればいいですか? 質問する

WPF テキストボックスにヒントテキストを追加するにはどうすればいいですか? 質問する

たとえば、Facebook では、テキスト ボックスが空の場合、検索テキスト ボックスに「検索」のヒント テキストが表示されます。

WPF テキスト ボックスでこれを実現するにはどうすればよいでしょうか?

Facebookの検索テキストボックス

ベストアンサー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、実際のキュー バナーのテキスト、色、方向などを制御する添付プロパティのセットを作成することもできます。

おすすめ記事