【问题标题】:Binding all System Colors to a ListBox将所有系统颜色绑定到列表框
【发布时间】:2022-01-29 16:21:00
【问题描述】:

我想将所有 Windows.UI.Colors 绑定到 XAML 页面中的 ListBox (ListView?),在通用 Windows 应用程序中(对于 Windows 10,在 Visual Studio 2015 中)。

I found这种方式获取所有系统颜色:

Dictionary<string, Windows.UI.Color> Colors()
{
    var _Colors = typeof(Windows.UI.Colors)
        // using System.Reflection;
        .GetRuntimeProperties()
        .Select(c => new
        {
            Color = (Windows.UI.Color)c.GetValue(null),
            Name = c.Name
        });
    return _Colors.ToDictionary(x => x.Name, x => x.Color);
}

我不知道如何将它绑定到 ListBox

<ListBox ItemsSource="{x:Bind colors}" >
</ListBox>

理想情况下,列表项文本应为颜色名称,列表项背景为颜色值。

【问题讨论】:

    标签: c# xaml windows-10 win-universal-app uwp


    【解决方案1】:

    @Romasz 回答的另一种方法:

    将Color() 方法更改为属性,并返回带有SolidColorBrush 值的字典,而不是Color,如下所示:

      public Dictionary<string, SolidColorBrush> Colors
            {
                get
                {
                    var _Colors = typeof(Windows.UI.Colors)
                        // using System.Reflection;
                        .GetRuntimeProperties()
                        .Select(c => new
                        {
                            Color = new SolidColorBrush((Windows.UI.Color)c.GetValue(null)),
                            Name = c.Name
                        });
    
                    return _Colors.ToDictionary(x => x.Name, x => x.Color);
                }
            }
    

    然后,在 XAML 中,将列表框更改为:

    <ListBox ItemsSource="{x:Bind Colors}" >
        <ListBox.ItemTemplate>
            <DataTemplate>
                <StackPanel Orientation="Horizontal" Background="{Binding Value}">
                    <TextBlock Text="{Binding Key}"/>
                </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
    

    【讨论】:

      【解决方案2】:

      关于绑定,您需要改进几件事(我建议您阅读更多内容at MSDN)。至于您的代码 - 在 xaml 中,您需要声明您的 ItemTemplate 的外观并绑定到 DataContext 中的属性。您可能还需要一个转换器来将 Color 转换为 Brush:

      <StackPanel Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
          <ListView ItemsSource="{Binding MyColors}">
              <ListView.Resources>
                  <local:ColorToBrush x:Key="ColorToBrush"/>
              </ListView.Resources>
              <ListView.ItemTemplate>
                  <DataTemplate>
                      <Border Background="{Binding Color, Converter={StaticResource ColorToBrush}}">
                          <TextBlock Text="{Binding Name}"/>
                      </Border>
                  </DataTemplate>
              </ListView.ItemTemplate>
          </ListView>
      </StackPanel>
      

      以及后面的代码 - 转换器类,合适的属性和构造函数中的设置DataContext:

      public class ColorToBrush : IValueConverter
      {
          public object Convert(object value, Type targetType, object parameter, string language) => new SolidColorBrush((Windows.UI.Color)value);
          public object ConvertBack(object value, Type targetType, object parameter, string language) { throw new NotImplementedException(); }
      }
      
      public sealed partial class MainPage : Page
      {
          // this is the shortcut of {get { return ... }}
          public Array MyColors => typeof(Windows.UI.Colors).GetRuntimeProperties()
                  .Select(c => new
                  {
                      Color = (Windows.UI.Color)c.GetValue(null),
                      Name = c.Name
                  }).ToArray();  
      
          public MainPage()
          {
              this.InitializeComponent();
              DataContext = this;
          }
      }
      

      当然你也可以绑定到Dictionary,然后你必须在XAML绑定中交换:Name -&gt; Key和Color -&gt; Value。

      【讨论】:

      • 感谢您的解决方案!我会听从您的建议,以提高我对绑定的了解。只是一个简单的问题:您是否发现您的解决方案与@Leigh Shepperson 提供的其他解决方案之间存在任何性能差异?
      • @Jamrelian 至于性能,我怀疑你看不出有什么不同,如果你想做一些“研究”;使用 stopwatch 类并测量它。不过一切都取决于您的需求,如果您想使用画笔(例如显示颜色、用作前景等),那么我会按照 Leigh 的回答,如果您需要在其他地方使用画笔,那么您不需要进行另一个铸造/画笔创作。如果您需要其他颜色,请使用颜色。
      【解决方案3】:
      public MainPage()
              {
                  this.InitializeComponent();
      
                  this.Loaded += MainPage_Loaded;
              }
      
              private void MainPage_Loaded(object sender, RoutedEventArgs e)
              {
                  List<SystemColor> legacyBrushes = new List<SystemColor>();
                  foreach(var b in this.LegacyBrushes)
                  {
                      SystemColor c = new SystemColor();
                      c.ColorName = b;
                      c.ColorBrush = Application.Current.Resources[b] as SolidColorBrush;
                      legacyBrushes.Add(c);
                  }
      
                  foreach (var b in this.SystemBrushes)
                  {
                      SystemColor c = new SystemColor();
                      c.ColorName = b;
                      c.ColorBrush = Application.Current.Resources[b] as SolidColorBrush;
                      legacyBrushes.Add(c);
                  }
      
                  this._lvColors.ItemsSource = legacyBrushes;
              }
      
              public class SystemColor
              {
                  public string ColorName { get; set; }
      
                  public SolidColorBrush ColorBrush { get; set; }
              }
      
      
              public string[] LegacyBrushes = new string[] {
                  "AppBarBackgroundThemeBrush",
                  "AppBarBorderThemeBrush",
                  "AppBarItemBackgroundThemeBrush",
                  "AppBarItemDisabledForegroundThemeBrush",
                  "AppBarItemForegroundThemeBrush",
                  "AppBarItemPointerOverBackgroundThemeBrush",
                  "AppBarItemPointerOverForegroundThemeBrush",
                  "AppBarItemPressedForegroundThemeBrush",
                  "AppBarSeparatorForegroundThemeBrush",
                  "AppBarToggleButtonCheckedBackgroundThemeBrush",
                  "AppBarToggleButtonCheckedBorderThemeBrush",
                  "AppBarToggleButtonCheckedDisabledBackgroundThemeBrush",
                  "AppBarToggleButtonCheckedDisabledBorderThemeBrush",
                  "AppBarToggleButtonCheckedDisabledForegroundThemeBrush",
                  "AppBarToggleButtonCheckedForegroundThemeBrush",
                  "AppBarToggleButtonCheckedPointerOverBackgroundThemeBrush",
                  "AppBarToggleButtonCheckedPointerOverBorderThemeBrush",
                  "AppBarToggleButtonCheckedPressedBackgroundThemeBrush",
                  "AppBarToggleButtonCheckedPressedBorderThemeBrush",
                  "AppBarToggleButtonCheckedPressedForegroundThemeBrush",
                  "AppBarToggleButtonPointerOverBackgroundThemeBrush",
                  "ApplicationForegroundThemeBrush",
                  "ApplicationHeaderForegroundThemeBrush",
                  "ApplicationPageBackgroundThemeBrush",
                  "ApplicationPointerOverForegroundThemeBrush",
                  "ApplicationPressedForegroundThemeBrush",
                  "ApplicationSecondaryForegroundThemeBrush",
                  "AutoSuggestBackgroundThemeBrush",
                  "BackButtonBackgroundThemeBrush",
                  "BackButtonDisabledForegroundThemeBrush",
                  "BackButtonForegroundThemeBrush",
                  "BackButtonPointerOverBackgroundThemeBrush",
                  "BackButtonPointerOverForegroundThemeBrush",
                  "BackButtonPressedForegroundThemeBrush",
                  "ButtonBackgroundThemeBrush",
                  "ButtonBorderThemeBrush",
                  "ButtonDisabledBackgroundThemeBrush",
                  "ButtonDisabledBorderThemeBrush",
                  "ButtonDisabledForegroundThemeBrush",
                  "ButtonForegroundThemeBrush",
                  "ButtonPointerOverBackgroundThemeBrush",
                  "ButtonPointerOverForegroundThemeBrush",
                  "ButtonPressedBackgroundThemeBrush",
                  "ButtonPressedForegroundThemeBrush",
                  "CheckBoxBackgroundThemeBrush",
                  "CheckBoxBorderThemeBrush",
                  "CheckBoxContentDisabledForegroundThemeBrush",
                  "CheckBoxContentForegroundThemeBrush",
                  "CheckBoxDisabledBackgroundThemeBrush",
                  "CheckBoxDisabledBorderThemeBrush",
                  "CheckBoxDisabledForegroundThemeBrush",
                  "CheckBoxForegroundThemeBrush",
                  "CheckBoxPointerOverBackgroundThemeBrush",
                  "CheckBoxPointerOverBorderThemeBrush",
                  "CheckBoxPointerOverForegroundThemeBrush",
                  "CheckBoxPressedBackgroundThemeBrush",
                  "CheckBoxPressedBorderThemeBrush",
                  "CheckBoxPressedForegroundThemeBrush",
                  "ComboBoxArrowDisabledForegroundThemeBrush",
                  "ComboBoxArrowForegroundThemeBrush",
                  "ComboBoxArrowPressedForegroundThemeBrush",
                  "ComboBoxBackgroundThemeBrush",
                  "ComboBoxBorderThemeBrush",
                  "ComboBoxDisabledBackgroundThemeBrush",
                  "ComboBoxDisabledBorderThemeBrush",
                  "ComboBoxDisabledForegroundThemeBrush",
                  "ComboBoxFocusedBackgroundThemeBrush",
                  "ComboBoxFocusedBorderThemeBrush",
                  "ComboBoxFocusedForegroundThemeBrush",
                  "ComboBoxForegroundThemeBrush",
                  "ComboBoxHeaderForegroundThemeBrush",
                  "ComboBoxItemDisabledForegroundThemeBrush",
                  "ComboBoxItemPointerOverBackgroundThemeBrush",
                  "ComboBoxItemPointerOverForegroundThemeBrush",
                  "ComboBoxItemPressedBackgroundThemeBrush",
                  "ComboBoxItemPressedForegroundThemeBrush",
                  "ComboBoxItemSelectedBackgroundThemeBrush",
                  "ComboBoxItemSelectedDisabledBackgroundThemeBrush",
                  "ComboBoxItemSelectedDisabledForegroundThemeBrush",
                  "ComboBoxItemSelectedForegroundThemeBrush",
                  "ComboBoxItemSelectedPointerOverBackgroundThemeBrush",
                  "ComboBoxPlaceholderTextForegroundThemeBrush",
                  "ComboBoxPointerOverBackgroundThemeBrush",
                  "ComboBoxPointerOverBorderThemeBrush",
                  "ComboBoxPopupBackgroundThemeBrush",
                  "ComboBoxPopupBorderThemeBrush",
                  "ComboBoxPopupForegroundThemeBrush",
                  "ComboBoxPressedBackgroundThemeBrush",
                  "ComboBoxPressedBorderThemeBrush",
                  "ComboBoxPressedHighlightThemeBrush",
                  "ComboBoxPressedForegroundThemeBrush",
                  "ComboBoxSelectedBackgroundThemeBrush",
                  "ComboBoxSelectedPointerOverBackgroundThemeBrush",
                  "ContentDialogBackgroundThemeBrush",
                  "ContentDialogBorderThemeBrush",
                  "ContentDialogContentForegroundBrush",
                  "ContentDialogDimmingThemeBrush",
                  "DatePickerHeaderForegroundThemeBrush",
                  "DatePickerForegroundThemeBrush",
                  "DefaultTextForegroundThemeBrush",
                  "FlipViewButtonBackgroundThemeBrush",
                  "FlipViewButtonBorderThemeBrush",
                  "FlipViewButtonForegroundThemeBrush",
                  "FlipViewButtonPointerOverBackgroundThemeBrush",
                  "FlipViewButtonPointerOverBorderThemeBrush",
                  "FlipViewButtonPointerOverForegroundThemeBrush",
                  "FlipViewButtonPressedBackgroundThemeBrush",
                  "FlipViewButtonPressedBorderThemeBrush",
                  "FlipViewButtonPressedForegroundThemeBrush",
                  "FlyoutBackgroundThemeBrush",
                  "FlyoutBorderThemeBrush",
                  "FocusVisualBlackStrokeThemeBrush",
                  "FocusVisualWhiteStrokeThemeBrush",
                  "HyperlinkButtonBackgroundThemeBrush",
                  "HyperlinkButtonBorderThemeBrush",
                  "HyperlinkDisabledThemeBrush",
                  "HyperlinkForegroundThemeBrush",
                  "HyperlinkPointerOverForegroundThemeBrush",
                  "HyperlinkPressedForegroundThemeBrush",
                  "HubSectionHeaderPointerOverForegroundThemeBrush",
                  "HubSectionHeaderPressedForegroundThemeBrush",
                  "IMECandidateBackgroundThemeBrush",
                  "IMECandidateForegroundThemeBrush",
                  "IMECandidatePointerOverBackgroundThemeBrush",
                  "IMECandidatePointerOverForegroundThemeBrush",
                  "IMECandidateSecondaryForegroundThemeBrush",
                  "IMECandidateSelectedBackgroundThemeBrush",
                  "IMECandidateSelectedForegroundThemeBrush",
                  "IMECandidateListBackgroundThemeBrush",
                  "IMECandidateListPagingButtonBackgroundThemeBrush",
                  "IMECandidateListPagingButtonBorderThemeBrush",
                  "IMECandidateListPagingButtonForegroundThemeBrush",
                  "IMECandidateListPagingButtonPointerOverBackgroundThemeBrush",
                  "IMECandidateListPagingButtonPointerOverForegroundThemeBrush",
                  "IMECandidateListPagingButtonPressedBackgroundThemeBrush",
                  "IMECandidateListPagingButtonPressedForegroundThemeBrush",
                  "JumpListDefaultEnabledForeground",
                  "JumpListDefaultEnabledBackground",
                  "JumpListDefaultDisabledForeground",
                  "JumpListDefaultDisabledBackground",
                  "ListBoxBackgroundThemeBrush",
                  "ListBoxBorderThemeBrush",
                  "ListBoxDisabledForegroundThemeBrush",
                  "ListBoxFocusBackgroundThemeBrush",
                  "ListBoxForegroundThemeBrush",
                  "ListBoxItemDisabledForegroundThemeBrush",
                  "ListBoxItemPointerOverBackgroundThemeBrush",
                  "ListBoxItemPointerOverForegroundThemeBrush",
                  "ListBoxItemPressedBackgroundThemeBrush",
                  "ListBoxItemPressedForegroundThemeBrush",
                  "ListBoxItemSelectedBackgroundThemeBrush",
                  "ListBoxItemSelectedDisabledBackgroundThemeBrush",
                  "ListBoxItemSelectedDisabledForegroundThemeBrush",
                  "ListBoxItemSelectedForegroundThemeBrush",
                  "ListBoxItemSelectedPointerOverBackgroundThemeBrush",
                  "ListPickerFlyoutPresenterSelectedItemForegroundThemeBrush",
                  "ListPickerFlyoutPresenterSelectedItemBackgroundThemeBrush",
                  "ListViewGroupHeaderForegroundThemeBrush",
                  "ListViewGroupHeaderPointerOverForegroundThemeBrush",
                  "ListViewGroupHeaderPressedForegroundThemeBrush",
                  "ListViewItemCheckHintThemeBrush",
                  "ListViewItemCheckSelectingThemeBrush",
                  "ListViewItemCheckThemeBrush",
                  "ListViewItemDragBackgroundThemeBrush",
                  "ListViewItemDragForegroundThemeBrush",
                  "ListViewItemFocusBorderThemeBrush",
                  "ListViewItemOverlayBackgroundThemeBrush",
                  "ListViewItemOverlayForegroundThemeBrush",
                  "ListViewItemOverlaySecondaryForegroundThemeBrush",
                  "ListViewItemPlaceholderBackgroundThemeBrush",
                  "ListViewItemPointerOverBackgroundThemeBrush",
                  "ListViewItemSelectedBackgroundThemeBrush",
                  "ListViewItemSelectedForegroundThemeBrush",
                  "ListViewItemSelectedPointerOverBackgroundThemeBrush",
                  "ListViewItemSelectedPointerOverBorderThemeBrush",
                  "LoopingSelectorForegroundThemeBrush",
                  "LoopingSelectorSelectionBackgroundThemeBrush",
                  "LoopingSelectorSelectionForegroundThemeBrush",
                  "MediaButtonForegroundThemeBrush",
                  "MediaButtonBackgroundThemeBrush",
                  "MediaButtonPointerOverForegroundThemeBrush",
                  "MediaButtonPointerOverBackgroundThemeBrush",
                  "MediaButtonPressedForegroundThemeBrush",
                  "MediaButtonPressedBackgroundThemeBrush",
                  "MediaButtonPressedBorderThemeBrush",
                  "MediaControlPanelVideoThemeBrush",
                  "MediaControlPanelAudioThemeBrush",
                  "MediaDownloadProgressIndicatorThemeBrush",
                  "MediaErrorBackgroundThemeBrush",
                  "MediaTextThemeBrush",
                  "MenuFlyoutItemFocusedBackgroundThemeBrush",
                  "MenuFlyoutItemFocusedForegroundThemeBrush",
                  "MenuFlyoutItemDisabledForegroundThemeBrush",
                  "MenuFlyoutItemPointerOverBackgroundThemeBrush",
                  "MenuFlyoutItemPointerOverForegroundThemeBrush",
                  "MenuFlyoutItemPressedBackgroundThemeBrush",
                  "MenuFlyoutItemPressedForegroundThemeBrush",
                  "PivotForegroundThemeBrush",
                  "PivotHeaderBackgroundSelectedBrush",
                  "PivotHeaderBackgroundUnselectedBrush",
                  "PivotHeaderForegroundSelectedBrush",
                  "PivotHeaderForegroundUnselectedBrush",
                  "PivotNavButtonBackgroundThemeBrush",
                  "PivotNavButtonBorderThemeBrush",
                  "PivotNavButtonForegroundThemeBrush",
                  "PivotNavButtonPointerOverBackgroundThemeBrush",
                  "PivotNavButtonPointerOverBorderThemeBrush",
                  "PivotNavButtonPointerOverForegroundThemeBrush",
                  "PivotNavButtonPressedBackgroundThemeBrush",
                  "PivotNavButtonPressedBorderThemeBrush",
                  "PivotNavButtonPressedForegroundThemeBrush",
                  "MenuFlyoutSeparatorThemeBrush",
                  "ProgressBarBackgroundThemeBrush",
                  "ProgressBarBorderThemeBrush",
                  "ProgressBarForegroundThemeBrush",
                  "ProgressBarIndeterminateForegroundThemeBrush",
                  "RadioButtonBackgroundThemeBrush",
                  "RadioButtonBorderThemeBrush",
                  "RadioButtonContentDisabledForegroundThemeBrush",
                  "RadioButtonContentForegroundThemeBrush",
                  "RadioButtonDisabledBackgroundThemeBrush",
                  "RadioButtonDisabledBorderThemeBrush",
                  "RadioButtonDisabledForegroundThemeBrush",
                  "RadioButtonForegroundThemeBrush",
                  "RadioButtonPointerOverBackgroundThemeBrush",
                  "RadioButtonPointerOverBorderThemeBrush",
                  "RadioButtonPointerOverForegroundThemeBrush",
                  "RadioButtonPressedBackgroundThemeBrush",
                  "RadioButtonPressedBorderThemeBrush",
                  "RadioButtonPressedForegroundThemeBrush",
                  "RepeatButtonBorderThemeBrush",
                  "RepeatButtonDisabledBackgroundThemeBrush",
                  "RepeatButtonDisabledBorderThemeBrush",
                  "RepeatButtonDisabledForegroundThemeBrush",
                  "RepeatButtonForegroundThemeBrush",
                  "RepeatButtonPointerOverBackgroundThemeBrush",
                  "RepeatButtonPointerOverForegroundThemeBrush",
                  "RepeatButtonPressedBackgroundThemeBrush",
                  "RepeatButtonPressedForegroundThemeBrush",
                  "ScrollBarButtonForegroundThemeBrush",
                  "ScrollBarButtonPointerOverBackgroundThemeBrush",
                  "ScrollBarButtonPointerOverBorderThemeBrush",
                  "ScrollBarButtonPointerOverForegroundThemeBrush",
                  "ScrollBarButtonPressedBackgroundThemeBrush",
                  "ScrollBarButtonPressedBorderThemeBrush",
                  "ScrollBarButtonPressedForegroundThemeBrush",
                  "ScrollBarPanningBackgroundThemeBrush",
                  "ScrollBarPanningBorderThemeBrush",
                  "ScrollBarThumbBackgroundThemeBrush",
                  "ScrollBarThumbBorderThemeBrush",
                  "ScrollBarThumbPointerOverBackgroundThemeBrush",
                  "ScrollBarThumbPointerOverBorderThemeBrush",
                  "ScrollBarThumbPressedBackgroundThemeBrush",
                  "ScrollBarThumbPressedBorderThemeBrush",
                  "ScrollBarTrackBackgroundThemeBrush",
                  "ScrollBarTrackBorderThemeBrush",
                  "SearchBoxBackgroundThemeBrush",
                  "SearchBoxBorderThemeBrush",
                  "SearchBoxDisabledBackgroundThemeBrush",
                  "SearchBoxDisabledTextThemeBrush",
                  "SearchBoxDisabledBorderThemeBrush",
                  "SearchBoxPointerOverBackgroundThemeBrush",
                  "SearchBoxPointerOverTextThemeBrush",
                  "SearchBoxPointerOverBorderThemeBrush",
                  "SearchBoxFocusedBackgroundThemeBrush",
                  "SearchBoxFocusedTextThemeBrush",
                  "SearchBoxFocusedBorderThemeBrush",
                  "SearchBoxButtonBackgroundThemeBrush",
                  "SearchBoxButtonForegroundThemeBrush",
                  "SearchBoxButtonPointerOverForegroundThemeBrush",
                  "SearchBoxButtonPointerOverBackgroundThemeBrush",
                  "SearchBoxSeparatorSuggestionForegroundThemeBrush",
                  "SearchBoxHitHighlightForegroundThemeBrush",
                  "SearchBoxHitHighlightSelectedForegroundThemeBrush",
                  "SearchBoxIMECandidateListSeparatorThemeBrush",
                  "SearchBoxForegroundThemeBrush",
                  "SemanticZoomButtonBackgroundThemeBrush",
                  "SemanticZoomButtonBorderThemeBrush",
                  "SemanticZoomButtonForegroundThemeBrush",
                  "SemanticZoomButtonPointerOverBackgroundThemeBrush",
                  "SemanticZoomButtonPointerOverBorderThemeBrush",
                  "SemanticZoomButtonPointerOverForegroundThemeBrush",
                  "SemanticZoomButtonPressedBackgroundThemeBrush",
                  "SemanticZoomButtonPressedBorderThemeBrush",
                  "SemanticZoomButtonPressedForegroundThemeBrush",
                  "SettingsFlyoutBackgroundThemeBrush",
                  "SettingsFlyoutBackButtonPointerOverBackgroundThemeBrush",
                  "SettingsFlyoutHeaderBackgroundThemeBrush",
                  "SettingsFlyoutHeaderForegroundThemeBrush",
                  "SliderBorderThemeBrush",
                  "SliderDisabledBorderThemeBrush",
                  "SliderThumbBackgroundThemeBrush",
                  "SliderThumbBorderThemeBrush",
                  "SliderThumbDisabledBackgroundThemeBrush",
                  "SliderThumbPointerOverBackgroundThemeBrush",
                  "SliderThumbPointerOverBorderThemeBrush",
                  "SliderThumbPressedBackgroundThemeBrush",
                  "SliderThumbPressedBorderThemeBrush",
                  "SliderTickMarkInlineBackgroundThemeBrush",
                  "SliderTickMarkInlineDisabledForegroundThemeBrush",
                  "SliderTickmarkOutsideBackgroundThemeBrush",
                  "SliderTickMarkOutsideDisabledForegroundThemeBrush",
                  "SliderTrackBackgroundThemeBrush",
                  "SliderTrackDecreaseBackgroundThemeBrush",
                  "SliderTrackDecreaseDisabledBackgroundThemeBrush",
                  "SliderTrackDecreasePointerOverBackgroundThemeBrush",
                  "SliderTrackDecreasePressedBackgroundThemeBrush",
                  "SliderTrackDisabledBackgroundThemeBrush",
                  "SliderTrackPointerOverBackgroundThemeBrush",
                  "SliderTrackPressedBackgroundThemeBrush",
                  "SliderHeaderForegroundThemeBrush",
                  "TextBoxForegroundHeaderThemeBrush",
                  "TextBoxPlaceholderTextThemeBrush",
                  "TextBoxBackgroundThemeBrush",
                  "TextSelectionHighlightColorThemeBrush",
                  "TextBoxBorderThemeBrush",
                  "TextBoxButtonBackgroundThemeBrush",
                  "TextBoxButtonBorderThemeBrush",
                  "TextBoxButtonForegroundThemeBrush",
                  "TextBoxButtonPointerOverBackgroundThemeBrush",
                  "TextBoxButtonPointerOverBorderThemeBrush",
                  "TextBoxButtonPointerOverForegroundThemeBrush",
                  "TextBoxButtonPressedBackgroundThemeBrush",
                  "TextBoxButtonPressedBorderThemeBrush",
                  "TextBoxButtonPressedForegroundThemeBrush",
                  "TextBoxDisabledBackgroundThemeBrush",
                  "TextBoxDisabledBorderThemeBrush",
                  "TextBoxDisabledForegroundThemeBrush",
                  "TextBoxForegroundThemeBrush",
                  "ThumbBackgroundThemeBrush",
                  "ThumbBorderThemeBrush",
                  "ThumbPointerOverBackgroundThemeBrush",
                  "ThumbPointerOverBorderThemeBrush",
                  "ThumbPressedBackgroundThemeBrush",
                  "ThumbPressedBorderThemeBrush",
                  "TimePickerHeaderForegroundThemeBrush",
                  "TimePickerForegroundThemeBrush",
                  "ToggleButtonBackgroundThemeBrush",
                  "ToggleButtonBorderThemeBrush",
                  "ToggleButtonCheckedBackgroundThemeBrush",
                  "ToggleButtonCheckedBorderThemeBrush",
                  "ToggleButtonCheckedDisabledBackgroundThemeBrush",
                  "ToggleButtonCheckedDisabledForegroundThemeBrush",
                  "ToggleButtonCheckedForegroundThemeBrush",
                  "ToggleButtonCheckedPointerOverBackgroundThemeBrush",
                  "ToggleButtonCheckedPointerOverBorderThemeBrush",
                  "ToggleButtonCheckedPressedBackgroundThemeBrush",
                  "ToggleButtonCheckedPressedBorderThemeBrush",
                  "ToggleButtonCheckedPressedForegroundThemeBrush",
                  "ToggleButtonDisabledBorderThemeBrush",
                  "ToggleButtonDisabledForegroundThemeBrush",
                  "ToggleButtonForegroundThemeBrush",
                  "ToggleButtonPointerOverBackgroundThemeBrush",
                  "ToggleButtonPressedBackgroundThemeBrush",
                  "ToggleButtonPressedForegroundThemeBrush",
                  "ToggleSwitchCurtainBackgroundThemeBrush",
                  "ToggleSwitchCurtainDisabledBackgroundThemeBrush",
                  "ToggleSwitchCurtainPointerOverBackgroundThemeBrush",
                  "ToggleSwitchCurtainPressedBackgroundThemeBrush",
                  "ToggleSwitchDisabledForegroundThemeBrush",
                  "ToggleSwitchForegroundThemeBrush",
                  "ToggleSwitchHeaderDisabledForegroundThemeBrush",
                  "ToggleSwitchHeaderForegroundThemeBrush",
                  "ToggleSwitchOuterBorderBorderThemeBrush",
                  "ToggleSwitchOuterBorderDisabledBorderThemeBrush",
                  "ToggleSwitchThumbBackgroundThemeBrush",
                  "ToggleSwitchThumbBorderThemeBrush",
                  "ToggleSwitchThumbDisabledBackgroundThemeBrush",
                  "ToggleSwitchThumbDisabledBorderThemeBrush",
                  "ToggleSwitchThumbPointerOverBackgroundThemeBrush",
                  "ToggleSwitchThumbPointerOverBorderThemeBrush",
                  "ToggleSwitchThumbPressedBackgroundThemeBrush",
                  "ToggleSwitchThumbPressedForegroundThemeBrush",
                  "ToggleSwitchTrackBackgroundThemeBrush",
                  "ToggleSwitchTrackBorderThemeBrush",
                  "ToggleSwitchTrackDisabledBackgroundThemeBrush",
                  "ToggleSwitchTrackPointerOverBackgroundThemeBrush",
                  "ToggleSwitchTrackPressedBackgroundThemeBrush",
                  "ToolTipBackgroundThemeBrush",
                  "ToolTipBorderThemeBrush",
                  "ToolTipForegroundThemeBrush",
              };
      
              public string[] SystemBrushes = new string[] {
                  "SystemControlBackgroundAccentBrush",
                  "SystemControlBackgroundAltHighBrush",
                  "SystemControlBackgroundAltMediumHighBrush",
                  "SystemControlBackgroundAltMediumLowBrush",
                  "SystemControlBackgroundBaseHighBrush",
                  "SystemControlBackgroundBaseLowBrush",
                  "SystemControlBackgroundBaseMediumBrush",
                  "SystemControlBackgroundBaseMediumHighBrush",
                  "SystemControlBackgroundBaseMediumLowBrush",
                  "SystemControlBackgroundChromeBlackHighBrush",
                  "SystemControlBackgroundChromeBlackMediumBrush",
                  "SystemControlBackgroundChromeMediumBrush",
                  "SystemControlBackgroundChromeMediumLowBrush",
                  "SystemControlBackgroundChromeWhiteBrush",
                  "SystemControlBackgroundListLowBrush",
                  "SystemControlBackgroundListMediumBrush",
                  "SystemControlDisabledAccentBrush",
                  "SystemControlDisabledBaseHighBrush",
                  "SystemControlDisabledBaseLowBrush",
                  "SystemControlDisabledBaseMediumLowBrush",
                  "SystemControlDisabledChromeDisabledHighBrush",
                  "SystemControlDisabledChromeDisabledLowBrush",
                  "SystemControlDisabledChromeHighBrush",
                  "SystemControlDisabledChromeMediumLowBrush",
                  "SystemControlDisabledListMediumBrush",
                  "SystemControlDisabledTransparentBrush",
                  "SystemControlForegroundAccentBrush",
                  "SystemControlForegroundAltHighBrush",
                  "SystemControlForegroundAltMediumHighBrush",
                  "SystemControlForegroundBaseHighBrush",
                  "SystemControlForegroundBaseLowBrush",
                  "SystemControlForegroundBaseMediumBrush",
                  "SystemControlForegroundBaseMediumHighBrush",
                  "SystemControlForegroundBaseMediumLowBrush",
                  "SystemControlForegroundChromeBlackHighBrush",
                  "SystemControlForegroundChromeHighBrush",
                  "SystemControlForegroundChromeMediumBrush",
                  "SystemControlForegroundChromeWhiteBrush",
                  "SystemControlForegroundChromeDisabledLowBrush",
                  "SystemControlForegroundListLowBrush",
                  "SystemControlForegroundListMediumBrush",
                  "SystemControlForegroundTransparentBrush",
                  "SystemControlForegroundChromeBlackMediumBrush",
                  "SystemControlForegroundChromeBlackMediumLowBrush",
                  "SystemControlHighlightAccentBrush",
                  "SystemControlHighlightAltAccentBrush",
                  "SystemControlHighlightAltAltHighBrush",
                  "SystemControlHighlightAltBaseHighBrush",
                  "SystemControlHighlightAltBaseLowBrush",
                  "SystemControlHighlightAltBaseMediumBrush",
                  "SystemControlHighlightAltBaseMediumHighBrush",
                  "SystemControlHighlightAltAltMediumHighBrush",
                  "SystemControlHighlightAltBaseMediumLowBrush",
                  "SystemControlHighlightAltListAccentHighBrush",
                  "SystemControlHighlightAltListAccentLowBrush",
                  "SystemControlHighlightAltListAccentMediumBrush",
                  "SystemControlHighlightAltChromeWhiteBrush",
                  "SystemControlHighlightAltTransparentBrush",
                  "SystemControlHighlightBaseHighBrush",
                  "SystemControlHighlightBaseLowBrush",
                  "SystemControlHighlightBaseMediumBrush",
                  "SystemControlHighlightBaseMediumHighBrush",
                  "SystemControlHighlightBaseMediumLowBrush",
                  "SystemControlHighlightChromeAltLowBrush",
                  "SystemControlHighlightChromeHighBrush",
                  "SystemControlHighlightListAccentHighBrush",
                  "SystemControlHighlightListAccentLowBrush",
                  "SystemControlHighlightListAccentMediumBrush",
                  "SystemControlHighlightListMediumBrush",
                  "SystemControlHighlightListLowBrush",
                  "SystemControlHighlightTransparentBrush",
                  "SystemControlHyperlinkTextBrush",
                  "SystemControlHyperlinkBaseHighBrush",
                  "SystemControlHyperlinkBaseMediumBrush",
                  "SystemControlHyperlinkBaseMediumHighBrush",
                  "SystemControlPageBackgroundAltMediumBrush",
                  "SystemControlPageBackgroundMediumAltMediumBrush",
                  "SystemControlPageBackgroundBaseLowBrush",
                  "SystemControlPageBackgroundBaseMediumBrush",
                  "SystemControlPageBackgroundListLowBrush",
                  "SystemControlPageBackgroundChromeLowBrush",
                  "SystemControlPageTextBaseHighBrush",
                  "SystemControlPageTextBaseMediumBrush",
                  "SystemControlPageTextChromeBlackMediumLowBrush",
              };
      
              private void CheckBox_Checked(object sender, RoutedEventArgs e)
              {
                  CheckBox cb = sender as CheckBox;
                  Frame rootFrame = Window.Current.Content as Frame;
                  rootFrame.RequestedTheme = cb.IsChecked.Value ? ElementTheme.Dark : ElementTheme.Light;
              }
      
      <ListView Name="_lvColors" SelectionMode="None" Margin="0 30 0 0">
                  
                  <ListView.ItemTemplate>
                      <DataTemplate>
                          <Grid Height="48">
                              <Grid.ColumnDefinitions>
                                  <ColumnDefinition/>
                                  <ColumnDefinition/>
                              </Grid.ColumnDefinitions>
      
                              <TextBlock Text="{Binding ColorName}" VerticalAlignment="Center" IsTextSelectionEnabled="True" Margin="10 0"/>
      
                              <Grid Background="{Binding ColorBrush}" Grid.Column="1"/>
                          </Grid>
                      </DataTemplate>
                  </ListView.ItemTemplate>
      
                  <ListView.ItemContainerStyle>
                      <Style TargetType="ListViewItem">
                          <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
                          <Setter Property="Padding" Value="0" />
                          <Setter Property="Margin" Value="0" />
                      </Style>
                  </ListView.ItemContainerStyle>
              </ListView>
      
              <CheckBox Content="Theme" Checked="CheckBox_Checked" Unchecked="CheckBox_Checked" HorizontalAlignment="Center" VerticalAlignment="Top"/>
      

      【讨论】:

      • 请解释您的代码的作用以及它如何解决所提出的问题。
      猜你喜欢
      • 2012-09-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-15
      相关资源
      最近更新 更多