Jaa


Windowsストア アプリ開発 Tips集011 ~コントロールの明るさを一発で変える~

マイクロソフトの田中達彦です。
本連載では、C#/XAML でWindowsストアアプリを開発するときにヒントを紹介します。

[コントロールの明るさ]
コントロールの明るさには、2つの種類があります。
デフォルトは明るい色に設定されています。

Visual Studioで新しいアプリケーションを作成すると、背景が黒いアプリが作成されます。
その上にボタンなどのコントロールを貼りつけると、枠や文字が以下のように白く表示されます。

ここでアプリの背景を水色などの明るい色に変更すると、ボタンそのものが見えにくくなってしまいます。

ボタンのForegroundプロパティを変更しても、以下のように文字の部分の色が変わるだけです。
しかも、マウスをボタン上にホバーさせると、文字が白くなって見えにくくなります。

このようなときは、アプリのテーマカラーの種類を変更します。
App.xamlを開き、以下の黄色くマーカーした部分を追加します。
水色でマーカーした部分は、アプリによって変わるところです。

<Application
    x:Class="App1.App"
    xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:App1"
    RequestedTheme="Light"
    >

このようにRequestedThemeをLightに設定すると、以下のように明るい背景上でコントロールが見やすくなります。

RequestedThemeにはDarkとLightがあり、指定していないとき、すなわちデフォルトではDarkになっています。
もしアプリ全体を明るい色にするときは、RequestedThemeにLightを設定すると、標準のコントロールの色が見やすい色に変わります。

以下は、連載している縦書きビューワーの設定画面です。
左がRequesterThemeがLightの場合、右がDarkの場合です。
この場合は背景が明るい色なので、Lightを指定します。

 

[前後の記事]
010 ~プロジェクト内のテキストファイルを使用する~

[Tips集まとめページ]
https://blogs.msdn.com/b/ttanaka/archive/2013/03/05/windows-tips.aspx

マイクロソフト
田中達彦

Comments

  • Anonymous
    April 14, 2013
    RequestedTheme="Light" って、ユーザーのシステム設定より優先されるんでしたっけ? msdn.microsoft.com/.../windows.ui.xaml.application.requestedtheme > ユーザーがハイ コントラスト モードで実行する場合は無視されます。 ハイ コントラスト モードだけ確認しておけばいいのかな。

  • Anonymous
    April 15, 2013
    標準のコントロールの色は、ハイコントラスト モードのときにはRequestedThemeの値に関係なく、ハイコントラスト モード時の色が適用されます。