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));
		}
	}
}