首先下载搜索图标:

控件中的搜索图标下载地址:http://www.easyicon.net/1183666-Search_icon.html

搜索框设计过程比较简单:

1、先定义一个Rectangle作为背景

2、然后中间放TextBox输入,可以重写其中的模板。提示语Label放在模板中,可以在模板的触发器中控制隐藏显示~

3、搜索按钮-大家随便在网上下个就行了。

UserControl界面:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<UserControl x:Class="WpfApplication18.SearchControl"
       mc:Ignorable="d" MinHeight="30" MinWidth="150" Background="Transparent"
       d:DesignHeight="30" d:DesignWidth="150">
  <Grid>
    <Grid.ColumnDefinitions>
      <ColumnDefinition Width="15"></ColumnDefinition>
      <ColumnDefinition Width="*"></ColumnDefinition>
      <ColumnDefinition Width="36"></ColumnDefinition>
    </Grid.ColumnDefinitions>
    <Rectangle Grid.Column="0" Grid.ColumnSpan="3" Fill="LightGray" RadiusX="15" RadiusY="15" Opacity="0.8"></Rectangle>
     
    <TextBox x:Name="TbxInput" Grid.Column="1" KeyDown="TbxInput_OnKeyDown">
      <TextBox.Template>
        <ControlTemplate TargetType="TextBox">
          <Grid>
            <TextBlock x:Name="Uc_TblShow" Text="请输入..." Foreground="Gray" Opacity="0.5" VerticalAlignment="Center" Visibility="Collapsed"></TextBlock>
            <TextBox x:Name="Uc_TbxContent" Foreground="Gray" Background="Transparent" VerticalAlignment="Center" VerticalContentAlignment="Center" BorderThickness="0"
                 Text="{Binding ElementName=TbxInput,Path=Text,Mode=TwoWay}" FontSize="18"></TextBox>
          </Grid>
          <ControlTemplate.Triggers>
            <Trigger SourceName="Uc_TbxContent" Property="Text" Value="">
              <Setter TargetName="Uc_TblShow" Property="Visibility" Value="Visible"></Setter>
            </Trigger>
            <Trigger SourceName="Uc_TbxContent" Property="IsFocused" Value="True">
              <Setter TargetName="Uc_TblShow" Property="Visibility" Value="Collapsed"></Setter>
            </Trigger>
          </ControlTemplate.Triggers>
        </ControlTemplate>
      </TextBox.Template>
    </TextBox>
     
    <Button x:Name="BtnSearch" Grid.Column="2" Click="BtnSearch_OnClick" Cursor="Hand">
      <Button.Template>
        <ControlTemplate TargetType="Button">
          <Grid>
            <Image x:Name="Uc_Image" Source="1181298.png" Height="20" Width="20"></Image>
            <ContentPresenter></ContentPresenter>
          </Grid>
          <ControlTemplate.Triggers>
            <Trigger Property="IsMouseOver" Value="true">
              <Setter TargetName="Uc_Image" Property="Height" Value="25"></Setter>
              <Setter TargetName="Uc_Image" Property="Width" Value="25"></Setter>
            </Trigger>
          </ControlTemplate.Triggers>
        </ControlTemplate>
      </Button.Template>
    </Button>
  </Grid>
</UserControl>

UserControl后台:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public partial class SearchControl : UserControl
{
  public SearchControl()
  {
    InitializeComponent();
  }
 
  public event EventHandler<SearchEventArgs> OnSearch;
  private void BtnSearch_OnClick(object sender, RoutedEventArgs e)
  {
    ExeccuteSearch();
  }
 
  private void TbxInput_OnKeyDown(object sender, KeyEventArgs e)
  {
    ExeccuteSearch();
  }
 
  private void ExeccuteSearch()
  {
    if (OnSearch!=null)
    {
      var args=new SearchEventArgs();
      args.SearchText = TbxInput.Text;
      OnSearch(this, args);
    }
  }
}
public class SearchEventArgs : EventArgs
{
  public string SearchText { get; set; }
}

直接引用就行了:<wpfApplication18:SearchControl></wpfApplication18:SearchControl>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

WPF自定义搜索框代码分享的更多相关文章

  1. WPF 自定义搜索框

      控件中的搜索图标下载地址:http://www.easyicon.net/1183666-Search_icon.html 搜索框设计过程比较简单: 1.先定义一个Rectangle作为背景 2. ...

  2. bootStrap-table服务器端后台分页的使用,以及自定义搜索框的实现,前端代码到数据查询超详细讲解

    关于分页,之前一直纯手写js代码来实现,最近又需要用到分页,找了好多最终确定bootstrap-table,正好前端页面用的是bootstrap. 首先下载BootStrap-table的js和CSS ...

  3. iOS开发UI篇 -- UISearchBar 属性、方法详解及应用(自定义搜索框样式)

    很多APP都会涉及到搜索框,苹果也为我们提供了默认的搜索框UISearchBar.但实际项目中我们通常需要更改系统默认搜索框的样式.为了实现这一目标,我们需要先搞懂 UISearchBar 的属性及方 ...

  4. Qt之自定义搜索框

    简述 关于搜索框,大家都经常接触.例如:浏览器搜索.Windows资源管理器搜索等. 当然,这些对于Qt实现来说毫无压力,只要思路清晰,分分钟搞定. 方案一:调用QLineEdit现有接口 void ...

  5. 【Qt】Qt之自定义搜索框【转】

    简述 关于搜索框,大家都经常接触.例如:浏览器搜索.Windows资源管理器搜索等. 当然,这些对于Qt实现来说毫无压力,只要思路清晰,分分钟搞定. 简述 效果 细节分析 Coding 源码下载 效果 ...

  6. Android自定义View——自定义搜索框(SearchView)

    Android自定义View——自定义搜索框(SearchView) http://www.apkbus.com/android-142064-1-1.html

  7. Qt之自定义搜索框——QLineEdit里增加一个Layout,还不影响正常输入文字(好像是一种比较通吃的方法)

    简述 关于搜索框,大家都经常接触.例如:浏览器搜索.Windows资源管理器搜索等. 当然,这些对于Qt实现来说毫无压力,只要思路清晰,分分钟搞定. 方案一:调用QLineEdit现有接口 void ...

  8. AJ学IOS 之微博项目实战(5)微博自定义搜索框searchBar

    AJ分享,必须精品 一:效果 用UITextField简单定义一个搜索框 二:调用: 调用的代码,很简单,直接init就可以,以后加功能自己添加就行了. - (void)viewDidLoad { [ ...

  9. WPF 自定义文本框输入法 IME 跟随光标

    本文告诉大家在 WPF 写一个自定义的文本框,如何实现让输入法跟随光标 本文非小白向,本文适合想开发自定义的文本框,从底层开始开发的文本库的伙伴.在开始之前,期望了解了文本库开发的基础知识 本文实现的 ...

随机推荐

  1. OSX 系统无法直接用 Chrome 双击点击打开本地 html 文件

    在 Mac OS X 下,文件经常会被附加上 OS X 特有的扩展属性 ( extend attributes ),具体表现是用 ls -l 查看时会有 @ 的标记,譬如: $ ls -l index ...

  2. 003为什么shell的配置文件那么繁琐?

    Bash的设置之所以如此繁琐,是由于历史原因造成的.早期的时候,计算机运行速度很慢,载入配置文件需要很长时间,Bash的作者只好把配置文件分成了几个部分,阶段性载入. 系统的通用设置放在 /etc/p ...

  3. (21)Oracle表查询进阶

    转到基本查询 一.多表查询 笛卡尔积:每张表的列数相加,行数相乘. 连接条件:得出笛卡尔积后需要用where条件筛选出正确的数据.连接条件至少需要n张表减1个 1.等值连接 连接条件为等号 selec ...

  4. 一种极简的异步超时处理机制设计与实现(C#版)

    1.引言 当执行某些动作之后,会期待反馈.最终要么是得到了结果,要么就是超时了.当超时发生时,可能是期望得到通知,或是希望能自动重试,等等.于是设计了一种通用的异步超时的处理机制,以期通过简洁易理解的 ...

  5. Css 基础学习

    css 基本选择器 css基本选择器有三种方法 第一种: class选择器 .c1{ color: red;} <div class='c1'>hello world</div> ...

  6. 求用delphi编写的LRC校验位算法函数,急!!!

    求用delphi编写的LRC校验位算法函数,急!!! 某命令串为":010200000001FC" 其16进制为“3A 30 31 30 32 30 30 30 30 30 30 ...

  7. 聊聊、Zookeeper API

    今天我们来说说 Zookeeper 客户端启动,整个文章分三个部分:第一部分是 Zookeeper 原生 API 客户端,第二部分是开源客户端 ZkClient,第三部分是开源客户端 Curator. ...

  8. FORM标准默认时间区间处理

    WHEN-NEW-FORM-INSTANCE DECLARE    temp_date         date;    client_timezone   date;    char_date    ...

  9. 200多种Android动画效果的强悍框架

    admin 发布于2015-10-23 14:33 363/68015 [精品推荐]200多种Android动画效果的强悍框架,太全了,不看这个,再有动画的问题,不理你了^@^ 功能模块和技术方案 只 ...

  10. GestureDetector 完全解析

    个人原创 OnDown(MotionEvent e):用户触发DonenEvent就会执行onShowPress(MotionEvent e):用户触发DonenEvent后,在很短大概0.5秒内,没 ...