如何在WPF中向文本框添加“清除”按钮?

肖恩·科根(Sean Cogan)

我正在为我的WPF应用程序设计一个控件,该控件需要在的Button内部TextBoxButton将包含一个鼠标悬停改变图像,但我已经知道如何做到这一点的一部分。什么我在与实际包括的麻烦ButtonTextBox,让它只尽可能多的空间占用为图像和透明。以下是到目前为止我尝试过的标记:

XAML:

<Grid>
  <TextBox x:Name="SearchBoxView" HorizontalAlignment="Right" Width="200" Margin="5, 5, 10, 5" FontSize="16" KeyUp="SearchBoxKeyDown" Text="{Binding SearchText, Mode=TwoWay}" Grid.Column="0"/>
  <Button Background="Transparent" HorizontalAlignment="Right" HorizontalContentAlignment="Center" VerticalContentAlignment="Center">
    <Button.Content>
      <Image Source="Image.png" Stretch="None" RenderOptions.BitmapScalingMode="NearestNeighbor" VerticalAlignment="Center" HorizontalAlignment="Center"/>
    </Button.Content>
  </Button>
</Grid>

我一直关注着这个问题:如何在wpf中实现带有清除按钮的文本框?,它也链接到本文:WPF搜索文本框问题中建议的XAML无效,我认为这是因为Style它们使用了我无法访问的XAML 这篇文章提供了太多的信息,主要讨论的是为了交换鼠标悬停上的搜索和删除图标而需要的触发器和依赖项属性。因此,我正在寻求帮助,以找到有关如何实现这一目标的简单解决方案。谢谢!

编辑:我遵循了答案的建议,并且我能够正确设置按钮的样式,但是它仍不会显示在文本框中,如果是,则文本仍在其下方运行。我已经包括了XAML和正在发生的事情的图片:

XAML:

<Grid Margin="5, 5, 10, 5">
  <Grid.ColumnDefinitions>
    <ColumnDefinition Width="*"/>
    <ColumnDefinition Width="Auto"/>
  </Grid.ColumnDefinitions>
  <TextBox x:Name="SearchBoxView" HorizontalAlignment="Right" Width="200" FontSize="16" KeyUp="SearchBoxKeyDown" Text="{Binding SearchText, Mode=TwoWay}" Grid.Column="0"/>
  <Button Background="{Binding Backgound, ElementName=SearchBoxView}" HorizontalAlignment="Right" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Click="SearchBoxViewButtonClick" Grid.Column="1">
    <Button.Template>
      <ControlTemplate>
        <Border HorizontalAlignment="Center" VerticalAlignment="Center">
          <Image Source="Image.png" Width="12" Height="12"/>
        </Border>
      </ControlTemplate>
    </Button.Template>
  </Button>
</Grid>

图像:

带有按钮的搜索框

阿森·姆克特奇扬(Arsen Mkrtchyan)

指定Button模板,而不是内容

<Button>
    <Button.Template>
        <ControlTemplate>
            <Border HorizontalAlignment="Center" VerticalAlignment="Center" >
                <Image Source="pack://application:,,,/Organizr;component/DataLayer/Images/ActiveDeleteIcon.png" 
                               Width="16" 
                               Height="16"/>
            </Border>
        </ControlTemplate>
     </Button.Template>
</Button>

编辑

顺便说一句,在您的情况下,图像将覆盖TextBox并输入文字。我建议将此控件放在下面的网格的不同列中

<Grid>
   <Grid.ColumnDefinitions>
      <ColumnDefinition />
      <ColumnDefinition Width="Auto"/>
   </Grid.ColumnDefinitions>
   <TextBox x:Name="SearchBoxView"
            HorizontalAlignment="Right"
            Width="200" Margin="5, 5, 10, 5"
            FontSize="16"
            KeyUp="SearchBoxKeyDown"
            Text="{Binding SearchText, Mode=TwoWay}"
            Grid.Column="0"/>

   <Button
            Grid.Column="1"
            Background="Transparent"
            HorizontalAlignment="Right"
            HorizontalContentAlignment="Center" VerticalContentAlignment="Center">
           <ControlTemplate>
                <Border HorizontalAlignment="Center" VerticalAlignment="Center" >
                    <Image Source="pack://application:,,,/Organizr;component/DataLayer/Images/ActiveDeleteIcon.png" 
                                   Width="16" 
                                   Height="16"/>
                </Border>
            </ControlTemplate>
         </Button.Template>
    </Button>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在WPF C#中向文本框添加滚动条

来自分类Dev

如何在AS3中向文本框添加样式?

来自分类Dev

如何在兼容模式下从IE10文本框中删除清除按钮(“ X”按钮)?

来自分类Dev

如何在单选按钮旁边添加文本框

来自分类Dev

如何在WPF中单击按钮更新文本框背景色

来自分类Dev

如何在UWP的文本框中添加2个按钮?

来自分类Dev

单击kendo按钮时如何在div中添加新的文本框?

来自分类Dev

如何清除HTML中的文本框

来自分类Dev

select2如何向组合框添加文本框和按钮

来自分类Dev

select2如何向组合框添加文本框和按钮

来自分类Dev

如何在cakephp中内嵌文本框和按钮

来自分类Dev

单击确认消息框中的取消按钮后如何清除文本框?

来自分类Dev

如何在WPF中更改语言文本框?

来自分类Dev

如何在WPF文本框中推迟更新

来自分类Dev

如何在WPF文本框中删除多余的边框?

来自分类Dev

如何在WPF中更改语言文本框?

来自分类Dev

在WPF中动态添加文本框

来自分类Dev

如何在JPanel中添加可编辑的文本框

来自分类Dev

如何在文本框中添加额外的属性参数?

来自分类Dev

如何在Jquery的文本框中添加验证

来自分类Dev

如何在文本框中添加单词的注释?

来自分类Dev

如何在下拉列表中添加文本框?

来自分类Dev

如何清除点击按钮上的文本框

来自分类Dev

使用C#中的按钮清除多个文本框

来自分类Dev

清除绑定到wpf中的静态属性的文本框

来自分类Dev

我想知道如何在asp.net C#中向动态文本框添加位置!

来自分类Dev

如何在 Oracle Apex 5.1 中向区域动态添加一个或多个文本框?

来自分类Dev

单击按钮从表单上的多个文本框中清除文本框

来自分类Dev

在WPF中单击按钮将文本框中的数据添加到DataGridView

Related 相关文章

  1. 1

    如何在WPF C#中向文本框添加滚动条

  2. 2

    如何在AS3中向文本框添加样式?

  3. 3

    如何在兼容模式下从IE10文本框中删除清除按钮(“ X”按钮)?

  4. 4

    如何在单选按钮旁边添加文本框

  5. 5

    如何在WPF中单击按钮更新文本框背景色

  6. 6

    如何在UWP的文本框中添加2个按钮?

  7. 7

    单击kendo按钮时如何在div中添加新的文本框?

  8. 8

    如何清除HTML中的文本框

  9. 9

    select2如何向组合框添加文本框和按钮

  10. 10

    select2如何向组合框添加文本框和按钮

  11. 11

    如何在cakephp中内嵌文本框和按钮

  12. 12

    单击确认消息框中的取消按钮后如何清除文本框?

  13. 13

    如何在WPF中更改语言文本框?

  14. 14

    如何在WPF文本框中推迟更新

  15. 15

    如何在WPF文本框中删除多余的边框?

  16. 16

    如何在WPF中更改语言文本框?

  17. 17

    在WPF中动态添加文本框

  18. 18

    如何在JPanel中添加可编辑的文本框

  19. 19

    如何在文本框中添加额外的属性参数?

  20. 20

    如何在Jquery的文本框中添加验证

  21. 21

    如何在文本框中添加单词的注释?

  22. 22

    如何在下拉列表中添加文本框?

  23. 23

    如何清除点击按钮上的文本框

  24. 24

    使用C#中的按钮清除多个文本框

  25. 25

    清除绑定到wpf中的静态属性的文本框

  26. 26

    我想知道如何在asp.net C#中向动态文本框添加位置!

  27. 27

    如何在 Oracle Apex 5.1 中向区域动态添加一个或多个文本框?

  28. 28

    单击按钮从表单上的多个文本框中清除文本框

  29. 29

    在WPF中单击按钮将文本框中的数据添加到DataGridView

热门标签

归档