@prefix schema: <https://schema.org/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ks: <https://comcomponent.com/vocab/> .

<https://comcomponent.com/blog/windows-app-dark-mode-contrast-theme-guide/#article>
    schema:about <https://comcomponent.com/knowledge/windows-color-mode/>, <https://comcomponent.com/knowledge/contrast-theme/> ;
    schema:mentions <https://comcomponent.com/knowledge/app-color-palette/>, <https://comcomponent.com/knowledge/apps-use-light-theme-registry/>, <https://comcomponent.com/knowledge/contrast-ratio/>, <https://comcomponent.com/knowledge/contrast-theme-support/>, <https://comcomponent.com/knowledge/dark-title-bar/>, <https://comcomponent.com/knowledge/dotnet-framework/>, <https://comcomponent.com/knowledge/dwm-caption-color-attributes/>, <https://comcomponent.com/knowledge/dwm-set-window-attribute/>, <https://comcomponent.com/knowledge/dwm-system-backdrop/>, <https://comcomponent.com/knowledge/dwmwa-use-immersive-dark-mode/>, <https://comcomponent.com/knowledge/hardcoded-color/>, <https://comcomponent.com/knowledge/high-contrast-detection/>, <https://comcomponent.com/knowledge/light-fixed-policy/>, <https://comcomponent.com/knowledge/owner-drawn-control/>, <https://comcomponent.com/knowledge/system-color-pairing/>, <https://comcomponent.com/knowledge/theme-change-notification/>, <https://comcomponent.com/knowledge/uisettings-color-values/>, <https://comcomponent.com/knowledge/windows-11/>, <https://comcomponent.com/knowledge/winforms-apply-theming-implicitly/>, <https://comcomponent.com/knowledge/winforms-set-color-mode/>, <https://comcomponent.com/knowledge/winui-theme-dictionaries/>, <https://comcomponent.com/knowledge/wpf/>, <https://comcomponent.com/knowledge/wpf-resource-dictionary-swap/>, <https://comcomponent.com/knowledge/wpf-theme-mode/> .

<https://comcomponent.com/knowledge/windows-color-mode/> a skos:Concept ;
    skos:prefLabel "カラーモード(ライト/ダーク)"@ja ;
    skos:definition "Windowsの「設定 > 個人用設定 > 色」で選ぶ、OSとアプリ全体の前景色と背景色の明暗を定める設定。ライトは明るい背景に暗い前景、ダークは暗い背景に明るい前景で、前景とは既定の文字色を指す。"@ja ;
    skos:altLabel "ダークモード"@ja ;
    skos:altLabel "ライトモード"@ja ;
    skos:altLabel "Dark mode" ;
    skos:altLabel "Light mode" ;
    ks:verifiedBy <https://comcomponent.com/knowledge/uisettings-color-values/> ;
    ks:storedIn <https://comcomponent.com/knowledge/apps-use-light-theme-registry/> ;
    ks:requires <https://comcomponent.com/knowledge/contrast-ratio/> .

<https://comcomponent.com/knowledge/contrast-theme/> a skos:Concept ;
    skos:prefLabel "コントラストテーマ(ハイコントラスト)"@ja ;
    skos:definition "おおむね7:1以上のコントラスト比の制約されたパレットを使うWindowsのテーマ。"@ja ;
    ks:incompatibleWith <https://comcomponent.com/knowledge/windows-color-mode/> ;
    ks:verifiedBy <https://comcomponent.com/knowledge/high-contrast-detection/> .

<https://comcomponent.com/knowledge/dwmwa-use-immersive-dark-mode/> a skos:Concept ;
    skos:prefLabel "DWMWA_USE_IMMERSIVE_DARK_MODE"@ja ;
    skos:definition "DwmSetWindowAttributeで使うDWMWINDOWATTRIBUTEの値20。BOOLのTRUEを渡すと、ダークモードのシステム設定が有効なときにウィンドウのフレームをダークの色で描くことを許可し、FALSEで常にライトになる。Windows 11 ビルド22000以降で対応。"@ja ;
    skos:altLabel "DWMWA_USE_IMMERSIVE_DARK_MODE(値20)"@ja ;
    ks:implements <https://comcomponent.com/knowledge/dark-title-bar/> ;
    ks:requires <https://comcomponent.com/knowledge/windows-11/> .

<https://comcomponent.com/knowledge/dark-title-bar/> a skos:Concept ;
    skos:prefLabel "ダークタイトルバー"@ja ;
    skos:definition "システムのダーク設定に合わせて、DWMがウィンドウのフレーム(タイトルバー・枠)をダークの色で描く状態。Windowsはアプリの対応可否を知らないため、互換性のためすべてのウィンドウが既定でライトになる。"@ja ;
    skos:altLabel "ダークモードのタイトルバー"@ja ;
    ks:configuredBy <https://comcomponent.com/knowledge/dwm-set-window-attribute/> ;
    ks:requires <https://comcomponent.com/knowledge/windows-color-mode/> .

<https://comcomponent.com/knowledge/dwm-set-window-attribute/> a skos:Concept ;
    skos:prefLabel "DwmSetWindowAttribute"@ja ;
    skos:definition "ウィンドウの非クライアント領域に関するDWM(デスクトップウィンドウマネージャー)の描画属性を設定するWin32関数。Windows Vista以降で利用できる。"@ja ;
    skos:altLabel "DWM(デスクトップウィンドウマネージャー)"@ja .

<https://comcomponent.com/knowledge/windows-11/> a skos:Concept ;
    skos:prefLabel "Windows 11"@ja ;
    skos:definition "TPM 2.0やUEFI+セキュアブートなどのハードウェア要件を課す、Windows10の後継となるMicrosoftのデスクトップ向けOSである。"@ja .

<https://comcomponent.com/knowledge/dwm-caption-color-attributes/> a skos:Concept ;
    skos:prefLabel "DWMのタイトルバー色属性"@ja ;
    skos:definition "タイトルバーの色(35)・タイトル文字の色(36)・ウィンドウ枠の色(34)をCOLORREFで指定するDWMWINDOWATTRIBUTEの値。DWMWA_COLOR_DEFAULTを渡すとシステム既定に戻る。Windows 11 ビルド22000以降で対応。"@ja ;
    skos:altLabel "DWMWA_CAPTION_COLOR" ;
    skos:altLabel "DWMWA_TEXT_COLOR" ;
    skos:altLabel "DWMWA_BORDER_COLOR" ;
    ks:configuredBy <https://comcomponent.com/knowledge/dwm-set-window-attribute/> .

<https://comcomponent.com/knowledge/dwm-system-backdrop/> a skos:Concept ;
    skos:prefLabel "DWMのシステム背景素材(Mica/Acrylic)"@ja ;
    skos:definition "DWMWA_SYSTEMBACKDROP_TYPE(38)でウィンドウ全体の背後にシステムが描く素材を指定する仕組み。Windows 11ではDWMSBT_MAINWINDOWがMica、DWMSBT_TRANSIENTWINDOWがAcrylicに相当し、素材の効果は将来のWindowsで変わりうる。ビルド22621以降で対応。"@ja ;
    skos:altLabel "DWMWA_SYSTEMBACKDROP_TYPE" ;
    skos:altLabel "Mica" ;
    skos:altLabel "Acrylic" ;
    ks:configuredBy <https://comcomponent.com/knowledge/dwm-set-window-attribute/> ;
    ks:requires <https://comcomponent.com/knowledge/windows-11/> .

<https://comcomponent.com/knowledge/uisettings-color-values/> a skos:Concept ;
    skos:prefLabel "UISettingsによるカラーモードの取得と変更通知"@ja ;
    skos:definition "WinRTのWindows.UI.ViewManagement.UISettingsで前景色などのUIの色を取得し、ColorValuesChangedイベントで変更を受け取る仕組み。前景色(既定の文字色)が明るければダークモードと判定するのがMicrosoftの公式手順。"@ja ;
    skos:altLabel "UISettings.GetColorValue" ;
    skos:altLabel "UISettings.ColorValuesChanged" ;
    skos:altLabel "Windows.UI.ViewManagement.UISettings" .

<https://comcomponent.com/knowledge/apps-use-light-theme-registry/> a skos:Concept ;
    skos:prefLabel "AppsUseLightThemeレジストリ値"@ja ;
    skos:definition "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize配下にあり、アプリのライト/ダークのカラーモードを表すDWORD値。SystemUsesLightThemeはWindows自体のモードを表す。"@ja ;
    skos:altLabel "SystemUsesLightTheme" .

<https://comcomponent.com/knowledge/theme-change-notification/> a skos:Concept ;
    skos:prefLabel "テーマ変更の通知"@ja ;
    skos:definition "システム設定・テーマ・システムカラーの変更をアプリに知らせるWin32メッセージ(WM_SETTINGCHANGE・WM_THEMECHANGED・WM_SYSCOLORCHANGE)と、.NETでそれを包むSystemEvents.UserPreferenceChangedイベント。"@ja ;
    skos:altLabel "WM_THEMECHANGED" ;
    skos:altLabel "WM_SYSCOLORCHANGE" ;
    skos:altLabel "WM_SETTINGCHANGE" ;
    skos:altLabel "SystemEvents.UserPreferenceChanged" ;
    ks:recommendedFor <https://comcomponent.com/knowledge/windows-color-mode/> ;
    ks:recommendedFor <https://comcomponent.com/knowledge/contrast-theme/> .

<https://comcomponent.com/knowledge/app-color-palette/> a skos:Concept ;
    skos:prefLabel "アプリのカラーパレットの集約"@ja ;
    skos:definition "アプリが使う色をライト用・ダーク用の1組ずつにまとめ、各画面がそこから色を取る構造。散らばったハードコード色では塗り直す場所を列挙できない。"@ja ;
    skos:altLabel "パレットの集約"@ja ;
    ks:recommendedFor <https://comcomponent.com/knowledge/windows-color-mode/> .

<https://comcomponent.com/knowledge/hardcoded-color/> a skos:Concept ;
    skos:prefLabel "色のハードコード"@ja ;
    skos:definition "Color.Whiteや#E6E6E6のように特定の色をコードやXAMLに直接書くこと。テーマやコントラストテーマの切り替えに追従できず、前景と背景の組み合わせを崩す原因になる。"@ja ;
    skos:altLabel "ハードコードした色"@ja ;
    ks:notRecommendedFor <https://comcomponent.com/knowledge/contrast-theme/> ;
    ks:incompatibleWith <https://comcomponent.com/knowledge/system-color-pairing/> .

<https://comcomponent.com/knowledge/system-color-pairing/> a skos:Concept ;
    skos:prefLabel "システムカラーの前景/背景ペア"@ja ;
    skos:definition "WindowTextとWindow、ButtonTextとButtonFace、HighlightTextとHighlight、GrayTextとWindow、HotlightとWindowのように、組み合わせて使う前提で設計されたシステムカラーの対応関係。GrayTextは無効状態、Hotlightはハイパーリンク専用。"@ja ;
    skos:altLabel "前景色と背景色の組み合わせ"@ja ;
    ks:recommendedFor <https://comcomponent.com/knowledge/contrast-theme/> .

<https://comcomponent.com/knowledge/high-contrast-detection/> a skos:Concept ;
    skos:prefLabel "コントラストテーマの検知API"@ja ;
    skos:definition "SystemParametersInfoにSPI_GETHIGHCONTRASTを渡してHIGHCONTRAST構造体のHCF_HIGHCONTRASTONを確認する判定と、それを包むWinFormsのSystemInformation.HighContrast、WPFのSystemParameters.HighContrast、WinUI 3のThemeSettings.HighContrast。"@ja ;
    skos:altLabel "SPI_GETHIGHCONTRAST" ;
    skos:altLabel "SystemInformation.HighContrast" ;
    skos:altLabel "SystemParameters.HighContrast" ;
    skos:altLabel "ThemeSettings.HighContrast" .

<https://comcomponent.com/knowledge/winforms-set-color-mode/> a skos:Concept ;
    skos:prefLabel "WinFormsのApplication.SetColorMode"@ja ;
    skos:definition ".NET 9で導入され.NET 10で実験的でなくなった、WinFormsアプリのカラーモード(Classic・System・Dark)を設定するAPI。Application.Runより前に呼び、SystemColorsが対応する色セットに切り替わる。"@ja ;
    skos:altLabel "Application.SetColorMode" ;
    skos:altLabel "SystemColorMode" ;
    ks:implements <https://comcomponent.com/knowledge/windows-color-mode/> ;
    ks:requires <https://comcomponent.com/knowledge/windows-11/> ;
    ks:incompatibleWith <https://comcomponent.com/knowledge/contrast-theme/> .

<https://comcomponent.com/knowledge/winforms-apply-theming-implicitly/> a skos:Concept ;
    skos:prefLabel "ControlStyles.ApplyThemingImplicitly"@ja ;
    skos:definition "WinFormsのコントロールがアプリのカラーモードに暗黙に従うかを決めるControlStyles。CreateParamsのオーバーライド内でbase.CreateParamsより前にSetStyleで設定する必要があり、コンストラクターでは間に合わない。"@ja ;
    skos:altLabel "ApplyThemingImplicitly" .

<https://comcomponent.com/knowledge/owner-drawn-control/> a skos:Concept ;
    skos:prefLabel "独自描画コントロール"@ja ;
    skos:definition "アプリが自分で描画するコントロール。標準コントロールと違い、テーマやコントラストテーマへの追従をアプリ側が実装する必要がある。"@ja ;
    skos:altLabel "オーナードローコントロール"@ja ;
    skos:altLabel "カスタムコントロール"@ja .

<https://comcomponent.com/knowledge/wpf-theme-mode/> a skos:Concept ;
    skos:prefLabel "WPFのThemeMode(Fluentテーマ)"@ja ;
    skos:definition ".NET 9のWPFで導入された、Windows 11のFluentデザインに沿ったテーマをLight・Dark・System・Noneのモードで適用するプロパティ。ウィンドウへのダークモードと背景素材の適用も制御する。コードからの操作は実験的(WPF0001)。"@ja ;
    skos:altLabel "ThemeMode" ;
    skos:altLabel "Fluentテーマ"@ja ;
    skos:altLabel "PresentationFramework.Fluent" ;
    ks:implements <https://comcomponent.com/knowledge/windows-color-mode/> ;
    ks:implements <https://comcomponent.com/knowledge/dark-title-bar/> .

<https://comcomponent.com/knowledge/wpf-resource-dictionary-swap/> a skos:Concept ;
    skos:prefLabel "WPFのリソース辞書の差し替え"@ja ;
    skos:definition "ライト用とダーク用のResourceDictionaryに同じキーで色を定義し、MergedDictionaries内で入れ替えることでDynamicResource参照を更新させる、従来テーマのWPFでテーマに追従する手法。StaticResource参照は読み込み時の値のまま更新されない。"@ja ;
    skos:altLabel "MergedDictionariesの入れ替え"@ja .

<https://comcomponent.com/knowledge/wpf/> a skos:Concept ;
    skos:prefLabel "WPF"@ja ;
    skos:definition "XAMLでUIを宣言的に記述する、Windows専用のデスクトップUIフレームワーク。ベクターベースの描画とデータバインディングを特徴とする。"@ja ;
    skos:altLabel "Windows Presentation Foundation" .

<https://comcomponent.com/knowledge/winui-theme-dictionaries/> a skos:Concept ;
    skos:prefLabel "WinUIのThemeDictionaries"@ja ;
    skos:definition "XAMLのResourceDictionary.ThemeDictionariesにDefault・Light・HighContrastのキーでテーマごとのリソースを定義し、現在のテーマに応じて自動的に選ばれる仕組み。HighContrastは名前付きハイコントラストテーマが無いときのフォールバックキー。"@ja ;
    skos:altLabel "ThemeDictionaries" ;
    skos:altLabel "HighContrast辞書"@ja ;
    ks:implements <https://comcomponent.com/knowledge/contrast-theme-support/> .

<https://comcomponent.com/knowledge/contrast-theme-support/> a skos:Concept ;
    skos:prefLabel "コントラストテーマ対応"@ja ;
    skos:definition "SystemColor/Brushリソースを使って色をハードコードせず、文字拡大時にはコントロールやコンテナもリサイズ・再配置されるようにする実装。4種類のコントラストテーマで動作確認することが推奨される。"@ja ;
    skos:altLabel "テーマ追随レイアウト"@ja ;
    ks:recommendedFor <https://comcomponent.com/knowledge/light-fixed-policy/> .

<https://comcomponent.com/knowledge/contrast-ratio/> a skos:Concept ;
    skos:prefLabel "コントラスト比(達成基準1.4.3)"@ja ;
    skos:definition "テキストと文字画像に少なくとも4.5:1、大きな文字には少なくとも3:1のコントラスト比を求めるWCAGの達成基準。"@ja .

<https://comcomponent.com/knowledge/light-fixed-policy/> a skos:Concept ;
    skos:prefLabel "ライト固定の方針"@ja ;
    skos:definition "ダークモードの標準サポートが無いランタイムで、DWM属性を既定(FALSE)のままにしクライアント領域も従来どおりライトで一貫させると明示する方針。Windowsの既定の挙動そのもので、コントラストテーマ対応は別途必要。"@ja ;
    skos:altLabel "ライト表示の明示"@ja .

<https://comcomponent.com/knowledge/dotnet-framework/> a skos:Concept ;
    skos:prefLabel ".NET Framework"@ja ;
    skos:definition "Windowsのコンポーネントとして扱われ、インストールされているOSのライフサイクルに沿ってサポートされるランタイム。System.Messagingの対象範囲。"@ja .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/contrast-theme/> ;
    rdf:predicate ks:incompatibleWith ;
    rdf:object <https://comcomponent.com/knowledge/windows-color-mode/> ;
    schema:description "コントラストテーマが有効な間はダークモードが使えない。WinFormsのSetColorModeはコントラストテーマ中はダークを提供せず、XAMLのRequestedThemeもシステムに上書きされる。"@ja ;
    ks:evidence <https://learn.microsoft.com/dotnet/api/system.windows.forms.application.setcolormode>, <https://learn.microsoft.com/windows/apps/develop/ui/theming>, <https://learn.microsoft.com/windows/apps/design/accessibility/high-contrast-themes> ;
    ks:verifiedAt "2026-09-02" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/dwmwa-use-immersive-dark-mode/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/dark-title-bar/> ;
    schema:description "値20にBOOLのTRUEを渡すと、ダークモードのシステム設定が有効なときにウィンドウのフレームをダークの色で描くことが許可される。TRUEは「ダークにしろ」ではなく「システムがダークならダークにしてよい」という許可。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/api/dwmapi/ne-dwmapi-dwmwindowattribute>, <https://learn.microsoft.com/windows/apps/desktop/modernize/ui/apply-windows-themes> ;
    ks:verifiedAt "2026-09-02" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/dark-title-bar/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/dwm-set-window-attribute/> ;
    schema:description "タイトルバーを含む非クライアント領域はDWMが描いており、アプリはDwmSetWindowAttributeをトップレベルウィンドウのHWNDに対して呼んで描き方を指示する。HWNDが生成されるたび(再生成を含む)に設定し直す。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/desktop/modernize/ui/apply-windows-themes>, <https://learn.microsoft.com/windows/win32/api/dwmapi/nf-dwmapi-dwmsetwindowattribute> ;
    ks:verifiedAt "2026-09-02" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/dark-title-bar/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/windows-color-mode/> ;
    schema:description "属性をTRUEにしても、フレームがダークで描かれるのはシステムのカラーモードがダークのときだけで、ライトのときはライトで描かれる。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/api/dwmapi/ne-dwmapi-dwmwindowattribute> ;
    ks:verifiedAt "2026-09-02" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/dwmwa-use-immersive-dark-mode/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/windows-11/> ;
    schema:description "文書化された対応はWindows 11 ビルド22000以降。それ未満のOSでは属性を呼ばずにライトのタイトルバーという文書化された既定に従い、対応OSでの失敗はHRESULTを記録して表面化させる。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/api/dwmapi/ne-dwmapi-dwmwindowattribute> ;
    ks:verifiedAt "2026-09-02" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/dwm-caption-color-attributes/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/dwm-set-window-attribute/> ;
    schema:description "DWMWA_BORDER_COLOR(34)・DWMWA_CAPTION_COLOR(35)・DWMWA_TEXT_COLOR(36)にCOLORREFを渡してタイトルバーの色・文字色・枠線色を指定し、DWMWA_COLOR_DEFAULTで既定に戻す。Windows 11 ビルド22000以降。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/api/dwmapi/ne-dwmapi-dwmwindowattribute> ;
    ks:verifiedAt "2026-09-02" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/dwm-system-backdrop/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/dwm-set-window-attribute/> ;
    schema:description "DWMWA_SYSTEMBACKDROP_TYPE(38)にDWM_SYSTEMBACKDROP_TYPEの値を渡し、MicaやAcrylicに相当する背景素材をウィンドウ全体の背後に描かせる。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/api/dwmapi/ne-dwmapi-dwmwindowattribute>, <https://learn.microsoft.com/windows/win32/api/dwmapi/ne-dwmapi-dwm_systembackdrop_type> ;
    ks:verifiedAt "2026-09-02" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/dwm-system-backdrop/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/windows-11/> ;
    schema:description "DWMWA_SYSTEMBACKDROP_TYPEはWindows 11 ビルド22621以降で対応する。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/api/dwmapi/ne-dwmapi-dwmwindowattribute>, <https://learn.microsoft.com/windows/win32/api/dwmapi/ne-dwmapi-dwm_systembackdrop_type> ;
    ks:verifiedAt "2026-09-02" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/windows-color-mode/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/uisettings-color-values/> ;
    schema:description "UISettings.GetColorValue(UIColorType.Foreground)で前景色を取り、知覚輝度の整数演算で明るいと判定されればダークモードとする。これがMicrosoftの公式手順で、変更はColorValuesChangedで追跡する。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/desktop/modernize/ui/apply-windows-themes>, <https://learn.microsoft.com/uwp/api/windows.ui.viewmanagement.uisettings.getcolorvalue>, <https://learn.microsoft.com/uwp/api/windows.ui.viewmanagement.uisettings.colorvalueschanged> ;
    ks:verifiedAt "2026-09-02" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/windows-color-mode/> ;
    rdf:predicate ks:storedIn ;
    rdf:object <https://comcomponent.com/knowledge/apps-use-light-theme-registry/> ;
    schema:description "カラーモードはHKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\PersonalizeのAppsUseLightTheme(アプリ)とSystemUsesLightTheme(Windows)に保存される。レジストリは保存場所であってAPI契約ではないので、読むならUISettingsを正とする。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/develop/settings/settings-common> ;
    ks:verifiedAt "2026-09-02" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/theme-change-notification/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/windows-color-mode/> ;
    schema:description "実行中の切り替えに追従するには、ColorValuesChangedやWM_SETTINGCHANGE(.NETではUserPreferenceChanged)を購読し、どの通知が来ても同じ「読んで塗り直す」処理を呼ぶ。ColorValuesChangedはUIスレッドで届く保証がないためUIへ戻してから塗り直す。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/desktop/modernize/ui/apply-windows-themes>, <https://learn.microsoft.com/uwp/api/windows.ui.viewmanagement.uisettings.colorvalueschanged>, <https://learn.microsoft.com/dotnet/api/microsoft.win32.systemevents.userpreferencechanged> ;
    ks:verifiedAt "2026-09-02" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/theme-change-notification/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/contrast-theme/> ;
    schema:description "初期化時とWM_SYSCOLORCHANGE処理時にハイコントラストの状態を判定し直し、テーマ変更時はWM_THEMECHANGEDで色を再計算して再描画する。.NETではUserPreferenceChangedで同じことを行う。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/winauto/high-contrast-parameter>, <https://learn.microsoft.com/windows/win32/w8cookbook/high-contrast-mode>, <https://learn.microsoft.com/dotnet/desktop/winforms/advanced/walkthrough-creating-an-accessible-windows-based-application> ;
    ks:verifiedAt "2026-09-02" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/app-color-palette/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/windows-color-mode/> ;
    schema:description "ダークモードを完全にサポートするにはアプリのサーフェス全体がダークに従う必要があり、塗り直すには色が一箇所(ライト用とダーク用のパレット)に集まっていなければならない。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/desktop/modernize/ui/apply-windows-themes> ;
    ks:verifiedAt "2026-09-02" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/hardcoded-color/> ;
    rdf:predicate ks:notRecommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/contrast-theme/> ;
    schema:description "背景だけを#E6E6E6のように固定すると、コントラストテーマでは前景が白になって読めなくなる。文字色もハードコードせず、ユーザーが色を編集するため適用中のテーマに依存しないUIにする。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/design/accessibility/high-contrast-themes>, <https://learn.microsoft.com/windows/win32/w8cookbook/high-contrast-mode> ;
    ks:verifiedAt "2026-09-02" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/hardcoded-color/> ;
    rdf:predicate ks:incompatibleWith ;
    rdf:object <https://comcomponent.com/knowledge/system-color-pairing/> ;
    schema:description "黒い文字を前提にしてシステムの選択色を使うと、High Contrast Blackでは選択色が黒になり黒地に黒文字になる。ハードコードした色とシステムカラーを混ぜると前景と背景のペアが崩れる。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/w8cookbook/high-contrast-mode>, <https://learn.microsoft.com/windows/apps/design/accessibility/high-contrast-themes> ;
    ks:verifiedAt "2026-09-02" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/system-color-pairing/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/contrast-theme/> ;
    schema:description "ハイコントラストが有効なときは、すべての色をCOLOR_WINDOWTEXTとCOLOR_WINDOW、またはCOLOR_BTNTEXTとCOLOR_BTNFACEのような前景と背景の1組に写像し、文字の背後の画像を省き、多色の画像を前景色と背景色で描く。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/winauto/high-contrast-parameter>, <https://learn.microsoft.com/windows/apps/design/accessibility/high-contrast-themes> ;
    ks:verifiedAt "2026-09-02" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/contrast-theme/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/high-contrast-detection/> ;
    schema:description "SystemParametersInfoにSPI_GETHIGHCONTRASTを渡してHCF_HIGHCONTRASTONを確認するのが唯一のサポートされた判定方法で、WinFormsのSystemInformation.HighContrast、WPFのSystemParameters.HighContrast、WinUI 3のThemeSettings.HighContrastはこれを包んでいる。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/winauto/high-contrast-parameter>, <https://learn.microsoft.com/windows/win32/w8cookbook/high-contrast-mode>, <https://learn.microsoft.com/dotnet/api/system.windows.systemparameters.highcontrast>, <https://learn.microsoft.com/windows/windows-app-sdk/api/winrt/microsoft.ui.system.themesettings> ;
    ks:verifiedAt "2026-09-02" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/winforms-set-color-mode/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/windows-color-mode/> ;
    schema:description "Application.SetColorMode(SystemColorMode.System)をApplication.Runの前に呼ぶとWindowsのライト/ダーク設定に従い、SystemColorsが対応する色セットに切り替わって標準コントロールが従う。"@ja ;
    ks:evidence <https://learn.microsoft.com/dotnet/desktop/winforms/whats-new/net90>, <https://learn.microsoft.com/dotnet/desktop/winforms/whats-new/net100> ;
    ks:verifiedAt "2026-09-02" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/winforms-set-color-mode/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/windows-11/> ;
    schema:description "ダークのカラーモードはWindows 11以降でのみ利用できる。また、Systemを指定しても実行中にWindowsの設定が変わったときにアプリは自動では追従しない。"@ja ;
    ks:evidence <https://learn.microsoft.com/dotnet/api/system.windows.forms.application.setcolormode> ;
    ks:verifiedAt "2026-09-02" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/winforms-set-color-mode/> ;
    rdf:predicate ks:incompatibleWith ;
    rdf:object <https://comcomponent.com/knowledge/contrast-theme/> ;
    schema:description "システムがハイコントラストモードのときはダークモードは利用できない。"@ja ;
    ks:evidence <https://learn.microsoft.com/dotnet/api/system.windows.forms.application.setcolormode> ;
    ks:verifiedAt "2026-09-02" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/winforms-apply-theming-implicitly/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/owner-drawn-control/> ;
    schema:description "自分で構成・描画するコントロールの中でスクロールバーなどのWin32コモンコントロールを使う場合、CreateParamsのオーバーライド内でbase.CreateParamsより前にSetStyle(ControlStyles.ApplyThemingImplicitly, true)を呼んでオプトインしないとライトのまま残る。"@ja ;
    ks:evidence <https://learn.microsoft.com/dotnet/desktop/winforms/whats-new/net100> ;
    ks:verifiedAt "2026-09-02" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/wpf-theme-mode/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/windows-color-mode/> ;
    schema:description "ThemeMode=\"System\"を設定するとWindowsの設定に応じたライトまたはダークのFluentテーマが読み込まれる。コードからの設定は.NET 10でも実験的(WPF0001)。"@ja ;
    ks:evidence <https://learn.microsoft.com/dotnet/desktop/wpf/whats-new/net90>, <https://learn.microsoft.com/dotnet/api/system.windows.application.thememode> ;
    ks:verifiedAt "2026-09-02" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/wpf-theme-mode/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/dark-title-bar/> ;
    schema:description "ThemeModeはFluentテーマの辞書を読み込むだけでなく、ウィンドウへの背景素材とダークモードの適用も制御するため、DWM属性の設定はWPF側が引き受ける。"@ja ;
    ks:evidence <https://learn.microsoft.com/dotnet/api/system.windows.application.thememode> ;
    ks:verifiedAt "2026-09-02" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/wpf-resource-dictionary-swap/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/wpf/> ;
    schema:description "Fluentを採用しないWPFや.NET 8以前・.NET FrameworkのWPFでは、ライト用とダーク用の辞書に同じキーで色を定義し、DynamicResourceで参照し、MergedDictionariesで入れ替えて追従させる。"@ja ;
    ks:evidence <https://learn.microsoft.com/dotnet/desktop/wpf/advanced/dynamicresource-markup-extension>, <https://learn.microsoft.com/dotnet/desktop/wpf/whats-new/net90> ;
    ks:verifiedAt "2026-09-02" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/winui-theme-dictionaries/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/contrast-theme-support/> ;
    schema:description "WinUIではResourceDictionary.ThemeDictionariesにHighContrastキーの辞書を用意し、色をハードコードせずSystemColorWindowColorのような動的なシステムカラーをThemeResourceで参照する。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.resourcedictionary.themedictionaries>, <https://learn.microsoft.com/windows/apps/design/accessibility/high-contrast-themes> ;
    ks:verifiedAt "2026-09-02" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/windows-color-mode/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/contrast-ratio/> ;
    schema:description "ダークのパレットにもテキスト4.5:1・大きな文字3:1というコントラスト比の基準は同じように適用され、暗い灰色の背景に中間の灰色の文字を置くデザインはライトの「白地に薄い灰色」と同じ問題を抱える。"@ja ;
    ks:evidence <https://waic.jp/translations/WCAG21/> ;
    ks:verifiedAt "2026-09-02" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/light-fixed-policy/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/dotnet-framework/> ;
    schema:description "SetColorModeが無い.NET Frameworkや.NET 8以前のWinFormsでは、コモンコントロールの描画をアプリが完全には制御できず中途半端なダークになりがちなので、ライト固定を明示し、.NET 10へ移行するタイミングでSetColorModeに切り替える。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/desktop/modernize/ui/apply-windows-themes>, <https://learn.microsoft.com/dotnet/desktop/winforms/whats-new/net100> ;
    ks:verifiedAt "2026-09-02" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/contrast-theme-support/> ;
    rdf:predicate ks:recommendedFor ;
    rdf:object <https://comcomponent.com/knowledge/light-fixed-policy/> ;
    schema:description "ライト固定を選んでも、コントラストテーマ対応だけは固定できない。テーマの好みではなく使えるかどうかの問題で、合理的配慮の領域に当たる。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/design/accessibility/high-contrast-themes>, <https://learn.microsoft.com/dotnet/desktop/winforms/advanced/walkthrough-creating-an-accessible-windows-based-application> ;
    ks:verifiedAt "2026-09-02" ;
    ks:certainty "established" .
