通用应用程序中的ComboBox样式

时间:2015-05-22 12:10:00

标签: c# wpf combobox win-universal-app

我使用wpf在通用应用程序中覆盖了combobox的样式。在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}" />
...

我做错了什么?我需要的只是组合框的不同风格,但我无法知道如何为Windows手机做这件事。

1 个答案:

答案 0 :(得分:0)

好的,我解决了。根据这个Nested styles in Universal Apps,样式在WinRT中的工作方式完全不同。我通过在MainPage中为windows桌面定义样式来解决它。对于Windows Phone,我将样式放在组合框的父控件的资源中,并将其用作组合框样式属性中的静态资源。样式中的许多属性也不同,但您可以在C:\Program Files (x86)\Windows Phone Kits\8.1\Include\abi\Xaml\Design\generic.xaml中找到控件的完整定义。