首先下载搜索图标:
控件中的搜索图标下载地址: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" xmlns= "http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x= "http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc= "http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d= "http://schemas.microsoft.com/expression/blend/2008" 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>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。