倒腾了一晚上,终于自己写了个带X号的TextBox

文章详细描述了如何在Windows应用程序的TextBox控件中创建一个模板绑定的样式,以便通过点击按钮清空文本框内容。作者分享了XAML代码并感谢StackOverflow的帮助。
摘要由CSDN通过智能技术生成

这一晚上问这问那的,终于知道怎么在TextBox的模板中做一个可以清空元素的模板绑定控件了

```xaml

  <Style x:Key="DefaultTextBox" TargetType="TextBox">
    <Setter Property="VerticalAlignment" Value="Center" />
    <Setter Property="MinHeight" Value="20" />
    <Setter Property="FontSize" Value="13" />
    <Setter Property="Foreground" Value="{DynamicResource DefaultTextColor}" />
    <Setter Property="Margin" Value="10,5" />
    <Setter Property="Background" Value="Transparent" />
    <Setter Property="CaretBrush" Value="Black" />
    <Setter Property="Template">
      <Setter.Value>
        <ControlTemplate TargetType="TextBox">
          <Grid>
            <Grid.RowDefinitions>
              <RowDefinition />
              <RowDefinition Height="auto" />
            </Grid.RowDefinitions>
            <Border Background="{TemplateBinding Background}" />
            <DockPanel LastChildFill="False">
              <ContentPresenter
                Height="15"
                Margin="3,2"
                HorizontalAlignment="Left"
                VerticalAlignment="Center"
                Content="{TemplateBinding Text}" />
              <Button
                x:Name="Btn"
                Width="15"
                Height="15"
                Content="{md:PackIcon Kind=Close}"
                DockPanel.Dock="Right"
                Style="{StaticResource FuncBtn}">
                <i:Interaction.Triggers>
                  <i:EventTrigger EventName="Click">
                    <i:ChangePropertyAction 
                      TargetObject="{Binding RelativeSource={RelativeSource TemplatedParent}}" 
                      PropertyName="Text"
                      Value="{x:Null}" />
                  </i:EventTrigger>
                </i:Interaction.Triggers>
              </Button>
            </DockPanel>
            <Border
              x:Name="Back"
              BorderBrush="{DynamicResource DefaultForeGround}"
              BorderThickness="0,0,0,1" />
          </Grid>
          <ControlTemplate.Triggers>
            <Trigger Property="IsFocused" Value="True">
              <Setter Property="Background" Value="{DynamicResource DarkerBackGround}" />
            </Trigger>
          </ControlTemplate.Triggers>
        </ControlTemplate>
      </Setter.Value>
    </Setter>
  </Style>

```

感谢StackOverflow!!!

链接:c# - Clear / Erase TextBox Content With Button Click Event - Stack Overflow

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值