温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

WPF如何自定义搜索框

发布时间:2021-09-16 16:20:30 来源:亿速云 阅读:259 作者:小新 栏目:开发技术

这篇文章将为大家详细讲解有关WPF如何自定义搜索框,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

首先下载搜索图标:

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如何自定义搜索框”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

wpf
AI