我在通用应用程序中使用wpf重写组合框的样式。在windows 8.1上一切正常,但在windows phone 8.1上,我得到错误,指出没有密钥/名称ComboBoxThemeMinWidth
存在的资源。
<Application
x:Class="wcc.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:wcc"
RequestedTheme="Dark">
<Application.Resources>
<Style TargetType="ComboBox">
<Setter Property="Padding" Value="8,0" />
<Setter Property="MinWidth" Value="{ThemeResource ComboBoxThemeMinWidth}" />
<Setter Property="Foreground" Value="{ThemeResource ComboBoxForegroundThemeBrush}" />
...
我做错了什么?我只需要为combobox添加不同的样式,但是我不知道如何为windows phone添加样式。
好了,我解决了。根据通用应用程序中的嵌套样式,样式在WinRT中的工作方式完全不同。我通过在主页面中定义windows桌面的样式来解决这个问题。对于windows phone,我将样式放在组合框父控件的资源中,并将其用作组合框样式属性中的静态资源。样式中的许多属性也不同,但是您可以在C:Program Files (x86)Windows Phone Kits8.1IncludeabiXamlDesigngeneric.xaml
中找到控件的完整定义。