C#WPFのTextBox入力ボックスにプレースホルダーを追加する



C Add Placeholder Textbox Input Box Wpf



画像
次に、指定したスタイルファイルに次のコードを追加します
画像

<!--Placeholder--> <Style x:Key='placeHolder' TargetType='{x:Type TextBox}' BasedOn='{StaticResource {x:Type TextBox}}'> <Setter Property='Template'> <Setter.Value> <ControlTemplate TargetType='{x:Type TextBox}'> <Grid> <TextBox Padding='38,0,0,0' VerticalContentAlignment='Center' Text='{Binding Path=Text, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}' x:Name='textSource' Background='Transparent' Panel.ZIndex='2' /> <TextBox Padding='38,0,0,0' VerticalContentAlignment='Center' Text='{TemplateBinding Tag}' Background='{TemplateBinding Background}' Panel.ZIndex='1'> <TextBox.Style> <Style TargetType='{x:Type TextBox}'> <Setter Property='Foreground' Value='Transparent'/> <Style.Triggers> <DataTrigger Binding='{Binding Path=Text, Source={x:Reference textSource}}' Value=''> <Setter Property='Foreground' Value='LightGray'/> </DataTrigger> </Style.Triggers> </Style> </TextBox.Style> </TextBox> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style>

次に、次のようにウィンドウインターフェイスでスタイルをバインドします。ここで、プレースホルダーはTag属性で指定されます。
画像
次に、次の効果を確認できます。
画像