我有当前的 IF 语句,因为缺乏更好的短语。"功能性":
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (ColourSelections.TextColour != null)
{
TransfersItem.Foreground = ColourSelections.TextColour;
HomeItem.Foreground = ColourSelections.TextColour;
OverviewItem.Foreground = ColourSelections.TextColour;
SpendingItem.Foreground = ColourSelections.TextColour;
BillsItem.Foreground = ColourSelections.TextColour;
PayDatesItem.Foreground = ColourSelections.TextColour;
PeopleItem.Foreground = ColourSelections.TextColour;
// NavigationView header
NavView.Foreground = ColourSelections.TextColour;
// NavigationView Button Footer
ChangeUser.Foreground = ColourSelections.TextColour;
}
else
{
TransfersItem.Foreground = Application.Current.Resources["DefaultTextColour"] as SolidColorBrush;
HomeItem.Foreground = Application.Current.Resources["DefaultTextColour"] as SolidColorBrush;
OverviewItem.Foreground = Application.Current.Resources["DefaultTextColour"] as SolidColorBrush;
SpendingItem.Foreground = Application.Current.Resources["DefaultTextColour"] as SolidColorBrush;
BillsItem.Foreground = Application.Current.Resources["DefaultTextColour"] as SolidColorBrush;
PayDatesItem.Foreground = Application.Current.Resources["DefaultTextColour"] as SolidColorBrush;
PeopleItem.Foreground = Application.Current.Resources["DefaultTextColour"] as SolidColorBrush;
NavView.Foreground = Application.Current.Resources["DefaultTextColour"] as SolidColorBrush;
ChangeUser.Foreground = Application.Current.Resources["DefaultTextColour"] as SolidColorBrush;
}
}
我实质上是为 UWP 中的多个导航视图项声明多种颜色。
我试图将其转换为"foreach"或"for"语句,并逐步完成我的导航视图"导航视图"中的每个"导航视图项">
我目前有如下逻辑。这是错误的,但我希望逻辑能遇到:
foreach(NavigationViewItem navigationViewItem in NavView)
{
Foreground = ColourSelections.TextColour;
}
错误指出导航视图没有 GetEnumerator,我相信这意味着它无法"计算"有多少个导航视图项?
我通常得到以下格式的foreach循环的一般要点:
foreach(ARRAY as VALUE)
foreach(CLASSNAME varname in ARRAY)
对此的逻辑有什么想法吗?
您需要
在NavView.MenuItems中签入
protected override void OnNavigatedTo(NavigationEventArgs e)
{
SolidColorBrush myColor = Application.Current.Resources["DefaultTextColour"] as SolidColorBrush;
if (ColourSelections.TextColour != null)
{
myColor = ColourSelections.TextColour;
}
foreach(var item in NavView.MenuItems)
{
if(item is NavigationViewItem)
{
item.Foreground = myColor;
}
}
}