WPF搜尋Menu並提示

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