前提
現在、xamlでコントロールのカスタマイズについて学んでおり、textboxテンプレートを編集しています。
実現したいこと
textboxの中に押すとテキストボックスの中身がクリアされるボタンが入ったtextboxのテンプレートをxamlのみで作成したいのですが、やり方が分かりません。
該当のソースコード
ソースコード <Style x:Key="WatermarkTextbox" TargetType="{x:Type TextBox}"> <Setter Property="VerticalContentAlignment" Value="Center"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type TextBox}"> <Border x:Name="border" BorderBrush="Black" BorderThickness="2" CornerRadius="4" > <Grid Background="White"> <ScrollViewer x:Name="PART_ContentHost" Margin="5,0,0,0" VerticalAlignment="Center"/> <TextBlock x:Name="WaterMarkLabel" Text="{TemplateBinding Tag}" Opacity=".5" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="5,0,0,0" Visibility="Collapsed"/> <Button x:Name="ClearButton" Template="{StaticResource buttonTemplate}" Content="X" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="0,0,5,0"/> </Grid> </Border> <ControlTemplate.Triggers> <Trigger Property="Text" Value=""> <Setter Property="Visibility" TargetName="WaterMarkLabel" Value="Visible"/> <Setter Property="Visibility" TargetName="ClearButton" Value="Hidden"/> </Trigger> <Trigger Property="IsMouseOver" Value="True"> <Setter Property="BorderBrush" TargetName="border" Value="DeepskyBlue"/> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style>
0 コメント