Dismiss Notice

Register now to be one of the first members of this SharePoint Community! Click here it just takes seconds!

Dismiss Notice
Welcome Guest from Country Flag

How do I programmatically obtain the user’s selected accent color in Windows 10?

Discussion in 'Official Microsoft News' started by Raymond Chen - MSFT, Apr 5, 2017.

Thread Status:
Not open for further replies.
  1. Raymond Chen - MSFT

    Raymond Chen - MSFT Guest

    Blog Posts:
    0
    If you want to obtain the user’s accent color,
    you can ask

    the
    UISettings object

    for the current color value of

    UIColorType.Accent
    .



    How you get this information depends on what kind of program you’re writing.



    If you’re writing a Store app or a classic desktop program
    in C++/CX,
    then you do this:




    namespace vm = Windows::UI::ViewManagement;

    void GetAccentColor()
    {
    auto settings = ref new vm::UISettings();
    auto color = settings->GetColorValue(vm::UIColorType::Accent);
    // color.A, color.R, color.G, and color.B are the color channels.
    }



    If you’re writing a Store app or

    a classic desktop program

    in C#,
    then you do this:




    using vm = Windows.UI.ViewManagement;

    void GetAccentColor()
    {
    var settings = new vm.UISettings();
    var color = settings.GetColorValue(vm.UIColorType.Accent);
    // color.A, color.R, color.G, and color.B are the color channels.
    }



    If you’re writing a Store app in JavaScript,
    then you do this:




    var vm = Windows.UI.ViewManagement;

    funtion getAccentColor() {
    var settings = new vm.UISettings();
    var color = settings.getColorValue(vm.UIColorType.accent);
    // color.a, color.r, color.g, and color.b are the color channels.
    }



    If you’re writing a Store app or a
    classic desktop program in raw C++
    (you crazy person you),
    then you get to do this:




    namespace abi_vm = ABI::Windows::UI::ViewManagement;

    namespace wrl = Microsoft::WRL;

    namespace wf = Windows::Foundation;

    void GetAccentColor()
    {
    // Error checking has been elided for expository purposes.
    wrl::ComPtr<abi_vm::IUISettings> settings;
    wf::ActivateInstance(wrl::Wrappers::HStringReference(
    RuntimeClass_Windows_UI_ViewManagement_UISettings).Get(), &settings);
    ABI::Windows::UI::Color color;
    settings->GetColorValue(abi_vm::UIColorType::Accent, &color);
    // color.A, color.R, color.G, and color.B are the color channels.
    }



    And if you’re writing a Store app or a classic desktop program
    in

    C++/WinRT
    ,
    you write this:




    namespace winrt_vm = winrt::Windows::UI::ViewManagement;

    void GetAccentColor()
    {
    winrt_vm::UISettings settings;
    auto color = settings.GetColorValue(winrt_vm::UIColorType::Accent);
    // color.A, color.R, color.G, and color.B are the color channels.
    }



    Note that I used namespace aliases instead of importing
    the entire namespace.
    This makes the code a little bit uglier,
    but I think it’s useful for expository purposes
    because it makes it clearer which namespace
    each identifier comes from.

    Continue reading...
     
Thread Status:
Not open for further replies.

Share This Page

LiveZilla Live Chat Software