WPF利用TextBox与Button事件做搜寻Menu并提示
由于WPF专案里的MenuItem相当多,不想花时间去找,于是做一个功能如下:
首先XAML的Menu先要有Name:
<Menu Background="#162e45" Name="IndexMenu">省略</Menu>
XAML的Button事件:
<TextBox Name="SearchMenu" Grid.Column="0" Grid.Row="0"></TextBox>
<Button Name="searchBtn" Grid.Column="1" Grid.Row="0"
ToolTip="以关键字搜寻即可以黄色标示以利辨识"
Click="searchBtn_Click"
HorizontalAlignment="Left">搜寻</Button>
C#:
private void searchBtn_Click(object sender, RoutedEventArgs e)
{
string searchStr = SearchMenu.Text;
var menuList = IndexMenu.Items;
foreach (MenuItem item in menuList)
{
if(string.IsNullOrEmpty(searchStr))
item.Foreground = new SolidColorBrush(Color.FromRgb(224, 224, 224));
else
{
var findResult = item.Header.ToString().Contains(searchStr);
if (findResult)
item.Foreground = Brushes.Yellow;
else
item.Foreground = new SolidColorBrush(Color.FromRgb(224, 224, 224));
}
}
}