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