您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。