最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

WPF自定义搜索框代码分享

来源:动视网 责编:小采 时间:2020-11-27 22:36:35
文档

WPF自定义搜索框代码分享

WPF自定义搜索框代码分享:首先下载搜索图标: 控件中的搜索图标下载地址:http://www.easyicon.net/1183666-Search_icon.html 搜索框设计过程比较简单: 1、先定义一个Rectangle作为背景 2、然后中间放TextBox输入,可以重写其中的模板。提示语Label放在模板中,可
推荐度:
导读WPF自定义搜索框代码分享:首先下载搜索图标: 控件中的搜索图标下载地址:http://www.easyicon.net/1183666-Search_icon.html 搜索框设计过程比较简单: 1、先定义一个Rectangle作为背景 2、然后中间放TextBox输入,可以重写其中的模板。提示语Label放在模板中,可


首先下载搜索图标:

控件中的搜索图标下载地址: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自定义搜索框代码分享

WPF自定义搜索框代码分享:首先下载搜索图标: 控件中的搜索图标下载地址:http://www.easyicon.net/1183666-Search_icon.html 搜索框设计过程比较简单: 1、先定义一个Rectangle作为背景 2、然后中间放TextBox输入,可以重写其中的模板。提示语Label放在模板中,可
推荐度:
标签: 搜索 定义 代码
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top