这篇文章将为大家详细讲解有关WPF如何自定义搜索框,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
首先下载搜索图标:
控件中的搜索图标下载地址:http://www.easyicon.net/1183666-Search_icon.html
搜索框设计过程比较简单:
1、先定义一个Rectangle作为背景
2、然后中间放TextBox输入,可以重写其中的模板。提示语Label放在模板中,可以在模板的触发器中控制隐藏显示~
3、搜索按钮-大家随便在网上下个就行了。
UserControl界面:
<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后台:
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如何自定义搜索框”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。