Xaml 如何更改组合框下拉列表背景?
我想修改UWP项目中的Xaml 如何更改组合框下拉列表背景?,xaml,colors,combobox,uwp,Xaml,Colors,Combobox,Uwp,我想修改UWP项目中的组合框。我想更改包含ComboBoxItems的StackPanel(?)的背景色,但我还没有找到一种简单的方法 在这里,我想改变浅灰色填充的颜色 ComboBoxItems周围的颜色应该匹配,但突出的是默认的灰色 下面是一个例子,MSN Money的ComboBox有一个定制的填充颜色来匹配ComboBoxItems。这就是我希望实现的目标 我使用“padding”一词,但它实际上只是包含ComboBoxItems的元素的颜色 据我所知,我必须修改Windows 10
组合框。我想更改包含ComboBoxItems
的StackPanel
(?)的背景色,但我还没有找到一种简单的方法
在这里,我想改变浅灰色填充的颜色
ComboBoxItems
周围的颜色应该匹配,但突出的是默认的灰色
下面是一个例子,MSN Money的ComboBox
有一个定制的填充颜色来匹配ComboBoxItems
。这就是我希望实现的目标
我使用“padding”一词,但它实际上只是包含ComboBoxItems
的元素的颜色
据我所知,我必须修改Windows 10 SDK中提供的generics.xaml文件,但这将修改我正在使用的所有组合框。我可以创建一个从ComboBox
继承的自定义控件,但这不需要我在想要更改此颜色时编写一个新控件吗?必须有更简单的方法来改变这一点
@Bart这是我在组合框弹出窗口的模板中找到的代码。我不知道“SystemControlBackgroundChromeMediumLowBrush”是从哪里来的
<Popup x:Name="Popup">
<Border x:Name="PopupBorder"
Background="{ThemeResource ComboBoxDropDownBackground}"
BorderBrush="{ThemeResource ComboBoxDropDownBorderBrush}"
BorderThickness="{ThemeResource ComboBoxDropdownBorderThickness}"
千万不要触摸SDK文件夹中的generics.xaml文件,它是一个“系统文件”。这就像在Windows安装中更改某些文件以更改图标资源管理器(也可能导致其他应用程序更改此图标)
有多种解决方案:
- 在您自己的应用程序中(使用Visual Studio,混合或简单地复制)。如果您让它未命名(通过设置
x:Key
命名模板),它将应用于您所有的组合框
。如果您只想更改一些,则应给它一个键并将其用作静态资源
您正在寻找的代码片段是模板中的弹出控件
<Popup x:Name="Popup">
<Border
x:Name="PopupBorder"
Background="{ThemeResource SystemControlBackgroundChromeMediumLowBrush}"
BorderBrush="{ThemeResource SystemControlForegroundChromeHighBrush}"
BorderThickness="{ThemeResource ComboBoxDropdownBorderThickness}"
Margin="0,-1,0,-1"
HorizontalAlignment="Stretch">
第二个解决方案直到我意识到App.xaml有一行手动设置RequestedTheme为Light时才起作用,我立即删除了该行。我尝试创建了一个模板,但这对我的控件没有任何影响。至于xaml的第一块,你是从哪里复制的?xaml的第一个chunck来自默认模板(答案中链接)。若要使用自己创建的模板,请阅读答案中的链接,因为这应该会起作用(使用key+StaticResource或为应用程序中的所有控件重新定义默认模板)。但我很高兴您至少以第二种方式使其起作用。
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.ThemeDictionaries>
<ResourceDictionary x:Key="Dark">
<SolidColorBrush x:Key="SystemControlBackgroundChromeMediumLowBrush" Color="DarkGray" />
</ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>
</ResourceDictionary>
</Application.Resources>