Sdílet prostřednictvím


How to determine theme colors from a Direct3D app for Windows Phone 8

[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]

This topic shows you how to determine the phone’s current theme colors from a Windows Phone Direct3D app. Users can customize their phone by selecting a primary accent color, but also by choosing a light or dark theme, or by choosing a high-contrast theme that a user might find easier to read. The following table lists the UI element types that you can query in a Windows Phone Direct3D app. These theme colors are defined in the UIElementType enumeration. There are other theme colors in this enumeration that are used by other platforms, but the elements in the table are the only ones supported on the phone. Attempting to query a value not in the table will cause an exception to be thrown.

UI element type

Description

AccentColor

The phone's accent color.

TextHigh

High-contrast text.

TextMedium

Medium-contrast text.

TextLow

Low-contrast text.

TextContrastWithHigh

Text that contrasts with TextHigh.

NonTextHigh

High-contrast non-text content.

NonTextMediumHigh

Medium-high contrast non-text content.

NonTextMedium

Medium-contrast non-text content.

NonTextMediumLow

Medium-low contrast non-text content.

NonTextLow

Low-contrast non-text content.

PageBackground

The background of a normal page.

PopupBackground

The background of a pop-up dialog.

OverlayOutsidePopup

The partially opaque color applied to the area of the screen outside of a pop-up window to dim the background and highlight the dialog.

Example

This code sample shows you how to get the current theme’s accent color.

    auto settings = ref new UISettings();
    Windows::UI::Color accentColor = settings->UIElementColor(UIElementType::AccentColor);

It is possible for the user to switch their theme color while your app is running. If you want to handle this case, you can add a call to query the theme colors to the handler for the Resuming event, which is provided by the Direct3D app project template. This handler will be invoked if the user switches to the Settings app, and then returns to your app.