UI 복잡 버전 234 RED→GREEN 완료(docs/UI_USECASES.md §A~§J): 라이브 테마 전환(DynamicResource 전환+ThemeResolver+HighContrast 테마, 재시작 없음), 디자인 토큰 체계·WCAG 대비 결함 5건 수정, 설정창 카테고리 내비/검색 재구성+AppConfig 40여 속성, 다운로드 관리자(속도/ETA/세그먼트맵/전체 일시정지-이어받기/CSV 내보내기/예약 게이트/중복 확인), 라이브러리·아카이브·작업공간·재생목록·즐겨찾기 편집 뷰, 접근성(자동화 속성 30여 개·커스텀 피어·docs/ACCESSIBILITY.md), 인터랙션(휠 클릭 새 탭·XButton 탐색·F12·영역 캡처·프로필 전환), 상태/알림(토스트·알림센터·온보딩·CrashReportDialog). 보강 테스트 35건+실창 E2E 4건(StaDispatcher 기반 — 프록시 설정이 기시작 핸들러를 건드리는 크래시 실결함 수정 포함) — 453/453 GREEN. 이전 미커밋 작업(CI 워크플로·Mdns·QueueHub·UpdateChecker·AGENTS/CLAUDE·빌드 스크립트) 일괄 포함
This commit is contained in:
parent
5a0ce730b2
commit
17f2f91152
88 changed files with 9463 additions and 1127 deletions
|
|
@ -1,7 +1,8 @@
|
|||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||
|
||||
<!-- ===== 다크 팔레트 (단일 보라 액센트 - 의도적 통일) ===== -->
|
||||
<!-- ===== 다크 팔레트 (단일 보라 액센트 - 의도적 통일) =====
|
||||
UC-T14/T15/T18/A20: WCAG 대비 결함 수정 — TextMuted/BorderBrush/AccentBrush 밝게 조정. -->
|
||||
<SolidColorBrush x:Key="WindowBg" Color="#0B0B10"/>
|
||||
<LinearGradientBrush x:Key="WindowBgGradient" StartPoint="0,0" EndPoint="0,1">
|
||||
<GradientStop Color="#11111B" Offset="0"/>
|
||||
|
|
@ -12,24 +13,38 @@
|
|||
<SolidColorBrush x:Key="GlassBg" Color="#1A1A24"/>
|
||||
<SolidColorBrush x:Key="CardBg" Color="#1C1C26"/>
|
||||
<SolidColorBrush x:Key="CardBgHover" Color="#242430"/>
|
||||
<SolidColorBrush x:Key="BorderBrush" Color="#343442"/>
|
||||
<SolidColorBrush x:Key="BorderBrush" Color="#6C6C8A"/>
|
||||
<SolidColorBrush x:Key="BorderSubtle" Color="#20202B"/>
|
||||
<SolidColorBrush x:Key="TextPrimary" Color="#F2F2F6"/>
|
||||
<SolidColorBrush x:Key="TextSecondary" Color="#A9B0C5"/>
|
||||
<SolidColorBrush x:Key="TextMuted" Color="#7C8296"/>
|
||||
<SolidColorBrush x:Key="TextMuted" Color="#8B91A6"/>
|
||||
<SolidColorBrush x:Key="TextDisabled" Color="#5A5F72"/>
|
||||
<SolidColorBrush x:Key="TrackBrush" Color="#262631"/>
|
||||
<SolidColorBrush x:Key="SuccessBrush" Color="#34D399"/>
|
||||
<SolidColorBrush x:Key="ErrorBrush" Color="#F87171"/>
|
||||
<SolidColorBrush x:Key="PendingBrush" Color="#FBBF24"/>
|
||||
<SolidColorBrush x:Key="WarningBrush" Color="#FB923C"/>
|
||||
<SolidColorBrush x:Key="InfoBrush" Color="#60A5FA"/>
|
||||
<SolidColorBrush x:Key="SelectionBrush" Color="#4A3F9E"/>
|
||||
<SolidColorBrush x:Key="FocusAdornerBrush" Color="#B4A7FF"/>
|
||||
<SolidColorBrush x:Key="LinkBrush" Color="#93B4FF"/>
|
||||
<SolidColorBrush x:Key="VisitedLinkBrush" Color="#C4A9E8"/>
|
||||
<SolidColorBrush x:Key="AccentTextBrush" Color="#A99DFF"/>
|
||||
|
||||
<LinearGradientBrush x:Key="AccentGradient" StartPoint="0,0" EndPoint="1,1">
|
||||
<GradientStop Color="#6366F1" Offset="0"/>
|
||||
<GradientStop Color="#A855F7" Offset="1"/>
|
||||
</LinearGradientBrush>
|
||||
<SolidColorBrush x:Key="AccentBrush" Color="#7C6CFF"/>
|
||||
<SolidColorBrush x:Key="AccentBrush" Color="#8B7CFF"/>
|
||||
|
||||
<LinearGradientBrush x:Key="AccentFadeBrush" StartPoint="0,0" EndPoint="0,1">
|
||||
<GradientStop Color="#556366F1" Offset="0"/>
|
||||
<GradientStop Color="#006366F1" Offset="1"/>
|
||||
</LinearGradientBrush>
|
||||
|
||||
<!-- UC-T09 강조색 프리셋 스와치 (설정창 색 선택기가 참조) -->
|
||||
<SolidColorBrush x:Key="Accent.Blue" Color="#60A5FA"/>
|
||||
<SolidColorBrush x:Key="Accent.Green" Color="#34D399"/>
|
||||
<SolidColorBrush x:Key="Accent.Pink" Color="#F472B6"/>
|
||||
<SolidColorBrush x:Key="Accent.Orange" Color="#FB923C"/>
|
||||
</ResourceDictionary>
|
||||
|
|
|
|||
49
VideoDownloader.App/Themes/HighContrast.xaml
Normal file
49
VideoDownloader.App/Themes/HighContrast.xaml
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||
|
||||
<!-- ===== 고대비 팔레트 (UC-T05/A04) — Windows 고대비 테마 관례: 검정 배경 + 원색.
|
||||
Dark/Light 와 동일 키를 전부 정의해 Shared.xaml 스타일이 그대로 동작한다. ===== -->
|
||||
<SolidColorBrush x:Key="WindowBg" Color="#000000"/>
|
||||
<LinearGradientBrush x:Key="WindowBgGradient" StartPoint="0,0" EndPoint="0,1">
|
||||
<GradientStop Color="#000000" Offset="0"/>
|
||||
<GradientStop Color="#000000" Offset="1"/>
|
||||
</LinearGradientBrush>
|
||||
<SolidColorBrush x:Key="PanelBg" Color="#000000"/>
|
||||
<SolidColorBrush x:Key="GlassBg" Color="#1A1A1A"/>
|
||||
<SolidColorBrush x:Key="CardBg" Color="#000000"/>
|
||||
<SolidColorBrush x:Key="CardBgHover" Color="#2D2D2D"/>
|
||||
<SolidColorBrush x:Key="BorderBrush" Color="#FFFFFF"/>
|
||||
<SolidColorBrush x:Key="BorderSubtle" Color="#767676"/>
|
||||
<SolidColorBrush x:Key="TextPrimary" Color="#FFFFFF"/>
|
||||
<SolidColorBrush x:Key="TextSecondary" Color="#E8E8E8"/>
|
||||
<SolidColorBrush x:Key="TextMuted" Color="#D0D0D0"/>
|
||||
<SolidColorBrush x:Key="TextDisabled" Color="#8A8A8A"/>
|
||||
<SolidColorBrush x:Key="TrackBrush" Color="#5A5A5A"/>
|
||||
<SolidColorBrush x:Key="SuccessBrush" Color="#00FF66"/>
|
||||
<SolidColorBrush x:Key="ErrorBrush" Color="#FF5A5A"/>
|
||||
<SolidColorBrush x:Key="PendingBrush" Color="#FFFF00"/>
|
||||
<SolidColorBrush x:Key="WarningBrush" Color="#FFA500"/>
|
||||
<SolidColorBrush x:Key="InfoBrush" Color="#00C8FF"/>
|
||||
<SolidColorBrush x:Key="SelectionBrush" Color="#FFFF00"/>
|
||||
<SolidColorBrush x:Key="FocusAdornerBrush" Color="#FFFF00"/>
|
||||
<SolidColorBrush x:Key="LinkBrush" Color="#00C8FF"/>
|
||||
<SolidColorBrush x:Key="VisitedLinkBrush" Color="#C77BFF"/>
|
||||
<SolidColorBrush x:Key="AccentTextBrush" Color="#FFFF00"/>
|
||||
|
||||
<LinearGradientBrush x:Key="AccentGradient" StartPoint="0,0" EndPoint="1,1">
|
||||
<GradientStop Color="#FFFF00" Offset="0"/>
|
||||
<GradientStop Color="#FFFF00" Offset="1"/>
|
||||
</LinearGradientBrush>
|
||||
<SolidColorBrush x:Key="AccentBrush" Color="#FFFF00"/>
|
||||
|
||||
<LinearGradientBrush x:Key="AccentFadeBrush" StartPoint="0,0" EndPoint="0,1">
|
||||
<GradientStop Color="#66FFFF00" Offset="0"/>
|
||||
<GradientStop Color="#00FFFF00" Offset="1"/>
|
||||
</LinearGradientBrush>
|
||||
|
||||
<!-- UC-T09 강조색 프리셋 (고대비에서도 동일 키 제공) -->
|
||||
<SolidColorBrush x:Key="Accent.Blue" Color="#00C8FF"/>
|
||||
<SolidColorBrush x:Key="Accent.Green" Color="#00FF66"/>
|
||||
<SolidColorBrush x:Key="Accent.Pink" Color="#FF6EC7"/>
|
||||
<SolidColorBrush x:Key="Accent.Orange" Color="#FFA500"/>
|
||||
</ResourceDictionary>
|
||||
|
|
@ -1,7 +1,8 @@
|
|||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||
|
||||
<!-- ===== 라이트 팔레트 (동일 키 - Shared.xaml 의 스타일이 그대로 동작) ===== -->
|
||||
<!-- ===== 라이트 팔레트 (동일 키 - Shared.xaml 의 스타일이 그대로 동작) =====
|
||||
UC-T16/T17/A19: TextMuted 어둡게(#63687A), TrackBrush 명확히(#808798) 조정. -->
|
||||
<SolidColorBrush x:Key="WindowBg" Color="#F6F7F9"/>
|
||||
<LinearGradientBrush x:Key="WindowBgGradient" StartPoint="0,0" EndPoint="0,1">
|
||||
<GradientStop Color="#FFFFFF" Offset="0"/>
|
||||
|
|
@ -12,15 +13,23 @@
|
|||
<SolidColorBrush x:Key="GlassBg" Color="#E9EBF0"/>
|
||||
<SolidColorBrush x:Key="CardBg" Color="#FFFFFF"/>
|
||||
<SolidColorBrush x:Key="CardBgHover" Color="#EEF0F4"/>
|
||||
<SolidColorBrush x:Key="BorderBrush" Color="#D5D9E1"/>
|
||||
<SolidColorBrush x:Key="BorderBrush" Color="#AEB4C4"/>
|
||||
<SolidColorBrush x:Key="BorderSubtle" Color="#E3E6EC"/>
|
||||
<SolidColorBrush x:Key="TextPrimary" Color="#1B1C24"/>
|
||||
<SolidColorBrush x:Key="TextSecondary" Color="#4A4E5E"/>
|
||||
<SolidColorBrush x:Key="TextMuted" Color="#767B8C"/>
|
||||
<SolidColorBrush x:Key="TrackBrush" Color="#DBDFE6"/>
|
||||
<SolidColorBrush x:Key="TextMuted" Color="#63687A"/>
|
||||
<SolidColorBrush x:Key="TextDisabled" Color="#9DA2B1"/>
|
||||
<SolidColorBrush x:Key="TrackBrush" Color="#808798"/>
|
||||
<SolidColorBrush x:Key="SuccessBrush" Color="#15A34A"/>
|
||||
<SolidColorBrush x:Key="ErrorBrush" Color="#DC2626"/>
|
||||
<SolidColorBrush x:Key="PendingBrush" Color="#C77708"/>
|
||||
<SolidColorBrush x:Key="WarningBrush" Color="#B45309"/>
|
||||
<SolidColorBrush x:Key="InfoBrush" Color="#2563EB"/>
|
||||
<SolidColorBrush x:Key="SelectionBrush" Color="#C7CFFB"/>
|
||||
<SolidColorBrush x:Key="FocusAdornerBrush" Color="#5B5FE3"/>
|
||||
<SolidColorBrush x:Key="LinkBrush" Color="#2C5BD1"/>
|
||||
<SolidColorBrush x:Key="VisitedLinkBrush" Color="#7C3AAB"/>
|
||||
<SolidColorBrush x:Key="AccentTextBrush" Color="#5B5FE3"/>
|
||||
|
||||
<LinearGradientBrush x:Key="AccentGradient" StartPoint="0,0" EndPoint="1,1">
|
||||
<GradientStop Color="#6366F1" Offset="0"/>
|
||||
|
|
@ -32,4 +41,10 @@
|
|||
<GradientStop Color="#306366F1" Offset="0"/>
|
||||
<GradientStop Color="#006366F1" Offset="1"/>
|
||||
</LinearGradientBrush>
|
||||
|
||||
<!-- UC-T09 강조색 프리셋 스와치 (다크와 동일 키 — 배경에 따라 살짝 어둡게) -->
|
||||
<SolidColorBrush x:Key="Accent.Blue" Color="#2563EB"/>
|
||||
<SolidColorBrush x:Key="Accent.Green" Color="#15803D"/>
|
||||
<SolidColorBrush x:Key="Accent.Pink" Color="#DB2777"/>
|
||||
<SolidColorBrush x:Key="Accent.Orange" Color="#C2410C"/>
|
||||
</ResourceDictionary>
|
||||
|
|
|
|||
|
|
@ -1,37 +1,144 @@
|
|||
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib">
|
||||
|
||||
<!-- 폰트 (테마 무관) — 한국어 폴백 포함(맑은 고딕) -->
|
||||
<FontFamily x:Key="UiFont">Segoe UI Variable Text, Segoe UI, Malgun Gothic</FontFamily>
|
||||
<!-- 폰트 (테마 무관) — 한국어 가독성 프리셋 Pretendard(UC-F12) 우선 + 폴백 체인.
|
||||
브러시/폰트/토큰 참조는 DynamicResource 로 연결해 테마·폰트·설정 변경이 즉시 반영된다(UC-T04). -->
|
||||
<FontFamily x:Key="UiFont">Pretendard, Segoe UI Variable Text, Segoe UI, Malgun Gothic</FontFamily>
|
||||
<FontFamily x:Key="IconFont">Segoe Fluent Icons</FontFamily>
|
||||
<FontFamily x:Key="MonoFont">Cascadia Mono, Consolas, Courier New</FontFamily>
|
||||
|
||||
<!-- ===== 디자인 토큰 (§B 타이포그래피 · §C 레이아웃 · UC-L22 지속시간) ===== -->
|
||||
<sys:Double x:Key="FontSize.Base">13</sys:Double>
|
||||
<sys:Double x:Key="FontSize.Small">11.5</sys:Double>
|
||||
<sys:Double x:Key="FontSize.Large">16</sys:Double>
|
||||
<sys:Double x:Key="FontSize.XLarge">22</sys:Double>
|
||||
<sys:Double x:Key="IconSize.Small">14</sys:Double>
|
||||
<sys:Double x:Key="Type.LineHeight">1.5</sys:Double>
|
||||
|
||||
<Thickness x:Key="Spacing.S">4,4,4,4</Thickness>
|
||||
<Thickness x:Key="Spacing.M">8,8,8,8</Thickness>
|
||||
<Thickness x:Key="Spacing.L">16,16,16,16</Thickness>
|
||||
<CornerRadius x:Key="CornerRadius.Card">12</CornerRadius>
|
||||
|
||||
<Duration x:Key="Duration.Fast">0:0:0.15</Duration>
|
||||
<Duration x:Key="Duration.Normal">0:0:0.3</Duration>
|
||||
<!-- UC-A16/L21: ReduceMotion 켜면 App 이 Duration 토큰들을 0으로 교체해 애니메이션을 즉시 완결시킨다. -->
|
||||
<sys:Boolean x:Key="ReduceMotion">False</sys:Boolean>
|
||||
|
||||
<!-- ===== 그림자 토큰 (UC-T23/T24) ===== -->
|
||||
<DropShadowEffect x:Key="TooltipShadow" Color="#000000" Opacity="0.45" BlurRadius="14" ShadowDepth="3" Direction="270"/>
|
||||
<DropShadowEffect x:Key="PopupShadow" Color="#000000" Opacity="0.4" BlurRadius="20" ShadowDepth="5" Direction="270"/>
|
||||
|
||||
<!-- ===== 스크롤바 썸 전용 색 (UC-T22) ===== -->
|
||||
<SolidColorBrush x:Key="ScrollBarThumbBrush" Color="#555C70"/>
|
||||
|
||||
<!-- ===== 탭 그룹 색 팔레트 (UC-B17) — MainWindow 탭 컨텍스트 메뉴가 사용 ===== -->
|
||||
<x:Array x:Key="GroupPalette" Type="SolidColorBrush">
|
||||
<SolidColorBrush Color="#E74C3C"/>
|
||||
<SolidColorBrush Color="#3498DB"/>
|
||||
<SolidColorBrush Color="#2ECC71"/>
|
||||
<SolidColorBrush Color="#F39C12"/>
|
||||
<SolidColorBrush Color="#9B59B6"/>
|
||||
<SolidColorBrush Color="#E91E8C"/>
|
||||
</x:Array>
|
||||
|
||||
<!-- 암시 스타일: 모든 텍스트가 UI 폰트로 통일(Foreground 는 상속 존중) -->
|
||||
<Style TargetType="TextBlock">
|
||||
<Setter Property="FontFamily" Value="{StaticResource UiFont}"/>
|
||||
<Setter Property="FontFamily" Value="{DynamicResource UiFont}"/>
|
||||
<Setter Property="SnapsToDevicePixels" Value="True"/>
|
||||
</Style>
|
||||
<Style TargetType="ToolTip">
|
||||
<Setter Property="FontFamily" Value="{StaticResource UiFont}"/>
|
||||
<Setter Property="Foreground" Value="{StaticResource TextPrimary}"/>
|
||||
<Setter Property="Background" Value="{StaticResource CardBg}"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource BorderBrush}"/>
|
||||
<Setter Property="FontFamily" Value="{DynamicResource UiFont}"/>
|
||||
<Setter Property="Foreground" Value="{DynamicResource TextPrimary}"/>
|
||||
<Setter Property="Background" Value="{DynamicResource CardBg}"/>
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource BorderBrush}"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="Padding" Value="10,6"/>
|
||||
<!-- UC-T23 툴팁 그림자 -->
|
||||
<Setter Property="Effect" Value="{StaticResource TooltipShadow}"/>
|
||||
</Style>
|
||||
|
||||
<!-- UC-A05 키보드 포커스 링 — 모든 인터랙티브 스타일이 참조 -->
|
||||
<Style x:Key="FocusVisual">
|
||||
<Setter Property="Control.Margin" Value="2"/>
|
||||
<Setter Property="Control.Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate>
|
||||
<Rectangle Margin="2" StrokeThickness="1.5" Stroke="{DynamicResource FocusAdornerBrush}"
|
||||
StrokeDashArray="4 2" SnapsToDevicePixels="True"/>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<!-- ===== 공용 텍스트 스타일 (§B) ===== -->
|
||||
<Style x:Key="Type.H1" TargetType="TextBlock">
|
||||
<Setter Property="FontFamily" Value="{DynamicResource UiFont}"/>
|
||||
<Setter Property="FontSize" Value="{DynamicResource FontSize.XLarge}"/>
|
||||
<Setter Property="FontWeight" Value="Bold"/>
|
||||
<Setter Property="LineHeight" Value="{DynamicResource Type.LineHeight}"/>
|
||||
<Setter Property="Foreground" Value="{DynamicResource TextPrimary}"/>
|
||||
</Style>
|
||||
<Style x:Key="Type.Body" TargetType="TextBlock">
|
||||
<Setter Property="FontFamily" Value="{DynamicResource UiFont}"/>
|
||||
<Setter Property="FontSize" Value="{DynamicResource FontSize.Base}"/>
|
||||
<Setter Property="LineHeight" Value="{DynamicResource Type.LineHeight}"/>
|
||||
<Setter Property="Foreground" Value="{DynamicResource TextPrimary}"/>
|
||||
<Setter Property="TextWrapping" Value="Wrap"/>
|
||||
</Style>
|
||||
<Style x:Key="Type.Caption" TargetType="TextBlock">
|
||||
<Setter Property="FontFamily" Value="{DynamicResource UiFont}"/>
|
||||
<Setter Property="FontSize" Value="{DynamicResource FontSize.Small}"/>
|
||||
<Setter Property="Foreground" Value="{DynamicResource TextMuted}"/>
|
||||
<Setter Property="TextWrapping" Value="Wrap"/>
|
||||
</Style>
|
||||
<!-- UC-F11 등폭 숫자 — 진행률·속도 표기에 사용 -->
|
||||
<Style x:Key="Type.Mono" TargetType="TextBlock">
|
||||
<Setter Property="FontFamily" Value="{DynamicResource MonoFont}"/>
|
||||
<Setter Property="FontSize" Value="{DynamicResource FontSize.Small}"/>
|
||||
<Setter Property="Foreground" Value="{DynamicResource TextSecondary}"/>
|
||||
</Style>
|
||||
<!-- UC-F19 탭 제목 -->
|
||||
<Style x:Key="TabTitleStyle" TargetType="TextBlock">
|
||||
<Setter Property="FontFamily" Value="{DynamicResource UiFont}"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||
<Setter Property="TextTrimming" Value="CharacterEllipsis"/>
|
||||
</Style>
|
||||
<!-- UC-F20 상태바 텍스트 -->
|
||||
<Style x:Key="StatusTextStyle" TargetType="TextBlock">
|
||||
<Setter Property="FontFamily" Value="{DynamicResource UiFont}"/>
|
||||
<Setter Property="FontSize" Value="11.5"/>
|
||||
<Setter Property="Foreground" Value="{DynamicResource TextSecondary}"/>
|
||||
<Setter Property="TextTrimming" Value="CharacterEllipsis"/>
|
||||
</Style>
|
||||
<!-- UC-N17 빈 상태 안내 -->
|
||||
<Style x:Key="EmptyStateStyle" TargetType="Border">
|
||||
<Setter Property="Background" Value="Transparent"/>
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource BorderSubtle}"/>
|
||||
<Setter Property="BorderThickness" Value="1"/>
|
||||
<Setter Property="CornerRadius" Value="10"/>
|
||||
<Setter Property="Padding" Value="16"/>
|
||||
<Setter Property="Margin" Value="8"/>
|
||||
</Style>
|
||||
|
||||
<!-- ===== Primary 버튼 ===== -->
|
||||
<Style x:Key="PrimaryButton" TargetType="Button">
|
||||
<Setter Property="FontFamily" Value="{StaticResource UiFont}"/>
|
||||
<Setter Property="FontFamily" Value="{DynamicResource UiFont}"/>
|
||||
<Setter Property="Foreground" Value="White"/>
|
||||
<Setter Property="FontWeight" Value="SemiBold"/>
|
||||
<Setter Property="FontSize" Value="13"/>
|
||||
<Setter Property="Padding" Value="16,8"/>
|
||||
<Setter Property="Cursor" Value="Hand"/>
|
||||
<Setter Property="BorderThickness" Value="0"/>
|
||||
<Setter Property="SnapsToDevicePixels" Value="True"/>
|
||||
<Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
|
||||
<Setter Property="RenderTransformOrigin" Value="0.5,0.5"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="Button">
|
||||
<Border x:Name="bd" Background="{StaticResource AccentGradient}" CornerRadius="8" Padding="{TemplateBinding Padding}">
|
||||
<Border x:Name="bd" Background="{DynamicResource AccentGradient}" CornerRadius="8" Padding="{TemplateBinding Padding}">
|
||||
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
||||
</Border>
|
||||
<ControlTemplate.Triggers>
|
||||
|
|
@ -39,7 +146,10 @@
|
|||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter TargetName="bd" Property="RenderTransform"><Setter.Value><ScaleTransform ScaleX="0.97" ScaleY="0.97"/></Setter.Value></Setter>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False"><Setter TargetName="bd" Property="Opacity" Value="0.35"/></Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter TargetName="bd" Property="Opacity" Value="0.35"/>
|
||||
<Setter Property="Foreground" Value="{DynamicResource TextDisabled}"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
|
|
@ -48,28 +158,33 @@
|
|||
|
||||
<!-- ===== Ghost 버튼 ===== -->
|
||||
<Style x:Key="GhostButton" TargetType="Button">
|
||||
<Setter Property="FontFamily" Value="{StaticResource UiFont}"/>
|
||||
<Setter Property="Foreground" Value="{StaticResource TextSecondary}"/>
|
||||
<Setter Property="FontFamily" Value="{DynamicResource UiFont}"/>
|
||||
<Setter Property="Foreground" Value="{DynamicResource TextSecondary}"/>
|
||||
<Setter Property="FontSize" Value="13"/>
|
||||
<Setter Property="Padding" Value="12,7"/>
|
||||
<Setter Property="Cursor" Value="Hand"/>
|
||||
<Setter Property="SnapsToDevicePixels" Value="True"/>
|
||||
<Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
|
||||
<Setter Property="RenderTransformOrigin" Value="0.5,0.5"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="Button">
|
||||
<Border x:Name="bd" Background="{StaticResource GlassBg}" BorderBrush="{StaticResource BorderBrush}" BorderThickness="1" CornerRadius="8" Padding="{TemplateBinding Padding}">
|
||||
<Border x:Name="bd" Background="{DynamicResource GlassBg}" BorderBrush="{DynamicResource BorderBrush}" BorderThickness="1" CornerRadius="8" Padding="{TemplateBinding Padding}">
|
||||
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
||||
</Border>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter TargetName="bd" Property="Background" Value="{StaticResource CardBgHover}"/>
|
||||
<Setter TargetName="bd" Property="BorderBrush" Value="{StaticResource AccentBrush}"/>
|
||||
<Setter Property="Foreground" Value="{StaticResource TextPrimary}"/>
|
||||
<Setter TargetName="bd" Property="Background" Value="{DynamicResource CardBgHover}"/>
|
||||
<Setter TargetName="bd" Property="BorderBrush" Value="{DynamicResource AccentBrush}"/>
|
||||
<Setter Property="Foreground" Value="{DynamicResource TextPrimary}"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter TargetName="bd" Property="RenderTransform"><Setter.Value><ScaleTransform ScaleX="0.97" ScaleY="0.97"/></Setter.Value></Setter>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False"><Setter TargetName="bd" Property="Opacity" Value="0.4"/></Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter TargetName="bd" Property="Opacity" Value="0.4"/>
|
||||
<Setter Property="Foreground" Value="{DynamicResource TextDisabled}"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
|
|
@ -78,28 +193,28 @@
|
|||
|
||||
<!-- ===== 아이콘 전용 버튼 (Fluent) ===== -->
|
||||
<Style x:Key="IconButton" TargetType="Button" BasedOn="{StaticResource GhostButton}">
|
||||
<Setter Property="FontFamily" Value="{StaticResource IconFont}"/>
|
||||
<Setter Property="FontFamily" Value="{DynamicResource IconFont}"/>
|
||||
<Setter Property="FontSize" Value="14"/>
|
||||
<Setter Property="Padding" Value="10,0"/>
|
||||
<Setter Property="Height" Value="32"/>
|
||||
<Setter Property="Foreground" Value="{StaticResource TextSecondary}"/>
|
||||
<Setter Property="Foreground" Value="{DynamicResource TextSecondary}"/>
|
||||
</Style>
|
||||
|
||||
<!-- ===== Fluent 아이콘 TextBlock ===== -->
|
||||
<Style x:Key="FluentIcon" TargetType="TextBlock">
|
||||
<Setter Property="FontFamily" Value="{StaticResource IconFont}"/>
|
||||
<Setter Property="FontFamily" Value="{DynamicResource IconFont}"/>
|
||||
<Setter Property="HorizontalAlignment" Value="Center"/>
|
||||
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||
</Style>
|
||||
|
||||
<!-- ===== 윈도우 캡션 버튼 (최소화/최대화/복원) — 고정폭, 서로 밀착(네이티브 Fluent) ===== -->
|
||||
<Style x:Key="CaptionButton" TargetType="Button" BasedOn="{StaticResource GhostButton}">
|
||||
<Setter Property="FontFamily" Value="{StaticResource IconFont}"/>
|
||||
<Setter Property="FontFamily" Value="{DynamicResource IconFont}"/>
|
||||
<Setter Property="FontSize" Value="11"/>
|
||||
<Setter Property="Padding" Value="0"/>
|
||||
<Setter Property="Width" Value="46"/>
|
||||
<Setter Property="Height" Value="32"/>
|
||||
<Setter Property="Foreground" Value="{StaticResource TextSecondary}"/>
|
||||
<Setter Property="Foreground" Value="{DynamicResource TextSecondary}"/>
|
||||
<Setter Property="Cursor" Value="Arrow"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
|
|
@ -109,11 +224,11 @@
|
|||
</Border>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter TargetName="bd" Property="Background" Value="{StaticResource CardBgHover}"/>
|
||||
<Setter Property="Foreground" Value="{StaticResource TextPrimary}"/>
|
||||
<Setter TargetName="bd" Property="Background" Value="{DynamicResource CardBgHover}"/>
|
||||
<Setter Property="Foreground" Value="{DynamicResource TextPrimary}"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsPressed" Value="True">
|
||||
<Setter TargetName="bd" Property="Background" Value="{StaticResource BorderBrush}"/>
|
||||
<Setter TargetName="bd" Property="Background" Value="{DynamicResource BorderBrush}"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
|
|
@ -148,12 +263,14 @@
|
|||
|
||||
<!-- ===== 투명 행 버튼 ===== -->
|
||||
<Style x:Key="FlatButton" TargetType="Button">
|
||||
<Setter Property="FontFamily" Value="{StaticResource UiFont}"/>
|
||||
<Setter Property="FontFamily" Value="{DynamicResource UiFont}"/>
|
||||
<Setter Property="Background" Value="Transparent"/>
|
||||
<Setter Property="BorderThickness" Value="0"/>
|
||||
<Setter Property="Foreground" Value="{StaticResource TextPrimary}"/>
|
||||
<Setter Property="Foreground" Value="{DynamicResource TextPrimary}"/>
|
||||
<Setter Property="Padding" Value="10,7"/>
|
||||
<Setter Property="Cursor" Value="Hand"/>
|
||||
<Setter Property="SnapsToDevicePixels" Value="True"/>
|
||||
<Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
|
||||
<Setter Property="HorizontalContentAlignment" Value="Left"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
|
|
@ -162,7 +279,7 @@
|
|||
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="Center"/>
|
||||
</Border>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="bd" Property="Background" Value="{StaticResource CardBgHover}"/></Trigger>
|
||||
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="bd" Property="Background" Value="{DynamicResource CardBgHover}"/></Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
|
|
@ -179,8 +296,9 @@
|
|||
</Style>
|
||||
<Style x:Key="SuggestItem" TargetType="ListBoxItem">
|
||||
<Setter Property="Padding" Value="12,7"/>
|
||||
<Setter Property="Foreground" Value="{StaticResource TextPrimary}"/>
|
||||
<Setter Property="Foreground" Value="{DynamicResource TextPrimary}"/>
|
||||
<Setter Property="Cursor" Value="Hand"/>
|
||||
<Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="ListBoxItem">
|
||||
|
|
@ -188,8 +306,8 @@
|
|||
<ContentPresenter/>
|
||||
</Border>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="bd" Property="Background" Value="{StaticResource CardBgHover}"/></Trigger>
|
||||
<Trigger Property="IsSelected" Value="True"><Setter TargetName="bd" Property="Background" Value="{StaticResource GlassBg}"/></Trigger>
|
||||
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="bd" Property="Background" Value="{DynamicResource CardBgHover}"/></Trigger>
|
||||
<Trigger Property="IsSelected" Value="True"><Setter TargetName="bd" Property="Background" Value="{DynamicResource GlassBg}"/></Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
|
|
@ -198,15 +316,16 @@
|
|||
|
||||
<!-- ===== TextBox ===== -->
|
||||
<Style x:Key="DarkTextBox" TargetType="TextBox">
|
||||
<Setter Property="FontFamily" Value="{StaticResource UiFont}"/>
|
||||
<Setter Property="Foreground" Value="{StaticResource TextPrimary}"/>
|
||||
<Setter Property="Background" Value="{StaticResource GlassBg}"/>
|
||||
<Setter Property="CaretBrush" Value="{StaticResource TextPrimary}"/>
|
||||
<Setter Property="SelectionBrush" Value="{StaticResource AccentBrush}"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource BorderBrush}"/>
|
||||
<Setter Property="FontFamily" Value="{DynamicResource UiFont}"/>
|
||||
<Setter Property="Foreground" Value="{DynamicResource TextPrimary}"/>
|
||||
<Setter Property="Background" Value="{DynamicResource GlassBg}"/>
|
||||
<Setter Property="CaretBrush" Value="{DynamicResource TextPrimary}"/>
|
||||
<Setter Property="SelectionBrush" Value="{DynamicResource SelectionBrush}"/>
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource BorderBrush}"/>
|
||||
<Setter Property="BorderThickness" Value="1"/>
|
||||
<Setter Property="Padding" Value="10,8"/>
|
||||
<Setter Property="FontSize" Value="13"/>
|
||||
<Setter Property="SnapsToDevicePixels" Value="True"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="TextBox">
|
||||
|
|
@ -215,31 +334,27 @@
|
|||
Focusable="False" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden"/>
|
||||
</Border>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsKeyboardFocused" Value="True"><Setter TargetName="bd" Property="BorderBrush" Value="{StaticResource AccentBrush}"/></Trigger>
|
||||
<Trigger Property="IsKeyboardFocused" Value="True"><Setter TargetName="bd" Property="BorderBrush" Value="{DynamicResource AccentBrush}"/></Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False"><Setter Property="Foreground" Value="{DynamicResource TextDisabled}"/></Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<!-- ===== ProgressBar ===== -->
|
||||
<!-- ===== ProgressBar (UC-T10: 하드코딩 색 제거 — 테마 강조 리소스만 참조) ===== -->
|
||||
<Style x:Key="AccentProgressBar" TargetType="ProgressBar">
|
||||
<Setter Property="Height" Value="8"/>
|
||||
<Setter Property="Focusable" Value="False"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="ProgressBar">
|
||||
<Grid>
|
||||
<!-- PART_Track 이 있어야 ProgressBar 가 PART_Indicator 폭을(Value/Maximum 비율) 계산한다.
|
||||
없으면 바가 절대 채워지지 않는 치명 결함이었음. -->
|
||||
<Border x:Name="PART_Track" CornerRadius="4" Background="{StaticResource TrackBrush}"/>
|
||||
<Border x:Name="PART_Indicator" CornerRadius="4" HorizontalAlignment="Left">
|
||||
<Border.Background>
|
||||
<LinearGradientBrush StartPoint="0,0" EndPoint="1,0">
|
||||
<GradientStop Color="#6366F1" Offset="0"/>
|
||||
<GradientStop Color="#A855F7" Offset="1"/>
|
||||
</LinearGradientBrush>
|
||||
</Border.Background>
|
||||
</Border>
|
||||
<Border x:Name="PART_Track" CornerRadius="4" Background="{DynamicResource TrackBrush}"/>
|
||||
<Border x:Name="PART_Indicator" CornerRadius="4" HorizontalAlignment="Left"
|
||||
Background="{DynamicResource AccentGradient}"/>
|
||||
</Grid>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
|
|
@ -249,19 +364,14 @@
|
|||
<!-- ===== 부정확(길이 미상) 진행률 바 ===== -->
|
||||
<Style x:Key="IndeterminateBar" TargetType="ProgressBar">
|
||||
<Setter Property="Height" Value="8"/>
|
||||
<Setter Property="Focusable" Value="False"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="ProgressBar">
|
||||
<Grid ClipToBounds="True">
|
||||
<Border CornerRadius="4" Background="{StaticResource TrackBrush}"/>
|
||||
<Border x:Name="shimmer" Width="48" CornerRadius="4" HorizontalAlignment="Left" RenderTransformOrigin="0,0">
|
||||
<Border.Background>
|
||||
<LinearGradientBrush StartPoint="0,0" EndPoint="1,0">
|
||||
<GradientStop Color="#556366F1" Offset="0"/>
|
||||
<GradientStop Color="#CCA855F7" Offset="0.5"/>
|
||||
<GradientStop Color="#556366F1" Offset="1"/>
|
||||
</LinearGradientBrush>
|
||||
</Border.Background>
|
||||
<Border CornerRadius="4" Background="{DynamicResource TrackBrush}"/>
|
||||
<Border x:Name="shimmer" Width="48" CornerRadius="4" HorizontalAlignment="Left" RenderTransformOrigin="0,0"
|
||||
Background="{DynamicResource AccentBrush}" Opacity="0.85">
|
||||
<Border.RenderTransform><TranslateTransform X="-50"/></Border.RenderTransform>
|
||||
</Border>
|
||||
</Grid>
|
||||
|
|
@ -271,7 +381,7 @@
|
|||
<Storyboard>
|
||||
<DoubleAnimation Storyboard.TargetName="shimmer"
|
||||
Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)"
|
||||
From="-50" To="470" Duration="0:0:1.3" RepeatBehavior="Forever"/>
|
||||
From="-50" To="470" Duration="{DynamicResource Duration.Normal}" RepeatBehavior="Forever"/>
|
||||
</Storyboard>
|
||||
</BeginStoryboard>
|
||||
</EventTrigger>
|
||||
|
|
@ -283,46 +393,82 @@
|
|||
|
||||
<!-- ===== CheckBox ===== -->
|
||||
<Style x:Key="DarkCheckBox" TargetType="CheckBox">
|
||||
<Setter Property="FontFamily" Value="{StaticResource UiFont}"/>
|
||||
<Setter Property="Foreground" Value="{StaticResource TextPrimary}"/>
|
||||
<Setter Property="FontFamily" Value="{DynamicResource UiFont}"/>
|
||||
<Setter Property="Foreground" Value="{DynamicResource TextPrimary}"/>
|
||||
<Setter Property="FontSize" Value="13"/>
|
||||
<Setter Property="Cursor" Value="Hand"/>
|
||||
<Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
|
||||
<Setter Property="SnapsToDevicePixels" Value="True"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="CheckBox">
|
||||
<StackPanel Orientation="Horizontal" Background="Transparent">
|
||||
<Border x:Name="box" Width="18" Height="18" CornerRadius="5" Background="{StaticResource GlassBg}" BorderBrush="{StaticResource BorderBrush}" BorderThickness="1.5">
|
||||
<Border x:Name="box" Width="18" Height="18" CornerRadius="5" Background="{DynamicResource GlassBg}" BorderBrush="{DynamicResource BorderBrush}" BorderThickness="1.5">
|
||||
<Path x:Name="check" Width="10" Height="10" Stretch="Uniform" Data="M 0 5 L 4 9 L 10 0" Stroke="White" StrokeThickness="2" HorizontalAlignment="Center" VerticalAlignment="Center" Visibility="Collapsed"/>
|
||||
</Border>
|
||||
<ContentPresenter VerticalAlignment="Center" Margin="8,0,0,0"/>
|
||||
</StackPanel>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsChecked" Value="True">
|
||||
<Setter TargetName="box" Property="Background" Value="{StaticResource AccentGradient}"/>
|
||||
<Setter TargetName="box" Property="Background" Value="{DynamicResource AccentGradient}"/>
|
||||
<Setter TargetName="box" Property="BorderBrush" Value="Transparent"/>
|
||||
<Setter TargetName="check" Property="Visibility" Value="Visible"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="box" Property="BorderBrush" Value="{StaticResource AccentBrush}"/></Trigger>
|
||||
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="box" Property="BorderBrush" Value="{DynamicResource AccentBrush}"/></Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False"><Setter Property="Foreground" Value="{DynamicResource TextDisabled}"/></Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<!-- ===== ComboBox (어두운 테마, 카드 화질 선택용) ===== -->
|
||||
<!-- ===== RadioButton(DarkCheckBox 와 같은 모양, 라디오 그룹용) ===== -->
|
||||
<Style x:Key="DarkRadioButton" TargetType="RadioButton">
|
||||
<Setter Property="FontFamily" Value="{DynamicResource UiFont}"/>
|
||||
<Setter Property="Foreground" Value="{DynamicResource TextPrimary}"/>
|
||||
<Setter Property="FontSize" Value="13"/>
|
||||
<Setter Property="Cursor" Value="Hand"/>
|
||||
<Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
|
||||
<Setter Property="SnapsToDevicePixels" Value="True"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="RadioButton">
|
||||
<StackPanel Orientation="Horizontal" Background="Transparent">
|
||||
<Border x:Name="box" Width="18" Height="18" CornerRadius="9" Background="{DynamicResource GlassBg}" BorderBrush="{DynamicResource BorderBrush}" BorderThickness="1.5">
|
||||
<Ellipse x:Name="dot" Width="8" Height="8" Fill="White" HorizontalAlignment="Center" VerticalAlignment="Center" Visibility="Collapsed"/>
|
||||
</Border>
|
||||
<ContentPresenter VerticalAlignment="Center" Margin="8,0,0,0"/>
|
||||
</StackPanel>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsChecked" Value="True">
|
||||
<Setter TargetName="box" Property="Background" Value="{DynamicResource AccentGradient}"/>
|
||||
<Setter TargetName="box" Property="BorderBrush" Value="Transparent"/>
|
||||
<Setter TargetName="dot" Property="Visibility" Value="Visible"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="box" Property="BorderBrush" Value="{DynamicResource AccentBrush}"/></Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False"><Setter Property="Foreground" Value="{DynamicResource TextDisabled}"/></Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<!-- ===== ComboBox ===== -->
|
||||
<Style x:Key="DarkComboBox" TargetType="ComboBox">
|
||||
<Setter Property="FontFamily" Value="{StaticResource UiFont}"/>
|
||||
<Setter Property="Foreground" Value="{StaticResource TextPrimary}"/>
|
||||
<Setter Property="Background" Value="{StaticResource GlassBg}"/>
|
||||
<Setter Property="BorderBrush" Value="{StaticResource BorderBrush}"/>
|
||||
<Setter Property="FontFamily" Value="{DynamicResource UiFont}"/>
|
||||
<Setter Property="Foreground" Value="{DynamicResource TextPrimary}"/>
|
||||
<Setter Property="Background" Value="{DynamicResource GlassBg}"/>
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource BorderBrush}"/>
|
||||
<Setter Property="BorderThickness" Value="1"/>
|
||||
<Setter Property="Padding" Value="10,6"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
<Setter Property="Cursor" Value="Hand"/>
|
||||
<Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
|
||||
<Setter Property="SnapsToDevicePixels" Value="True"/>
|
||||
<Setter Property="ItemContainerStyle">
|
||||
<Setter.Value>
|
||||
<Style TargetType="ComboBoxItem">
|
||||
<Setter Property="Foreground" Value="{StaticResource TextPrimary}"/>
|
||||
<Setter Property="Foreground" Value="{DynamicResource TextPrimary}"/>
|
||||
<Setter Property="Padding" Value="10,5"/>
|
||||
<Setter Property="Cursor" Value="Hand"/>
|
||||
<Setter Property="Template">
|
||||
|
|
@ -333,10 +479,10 @@
|
|||
</Border>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter TargetName="ibd" Property="Background" Value="{StaticResource AccentFadeBrush}"/>
|
||||
<Setter TargetName="ibd" Property="Background" Value="{DynamicResource AccentFadeBrush}"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsSelected" Value="True">
|
||||
<Setter TargetName="ibd" Property="Background" Value="{StaticResource AccentFadeBrush}"/>
|
||||
<Setter TargetName="ibd" Property="Background" Value="{DynamicResource AccentFadeBrush}"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
|
|
@ -373,14 +519,16 @@
|
|||
TextBlock.Foreground="{TemplateBinding Foreground}"
|
||||
TextBlock.FontSize="{TemplateBinding FontSize}"/>
|
||||
<TextBlock x:Name="arrow" Grid.Column="1" Text="" Style="{StaticResource FluentIcon}"
|
||||
FontSize="9" Foreground="{StaticResource TextMuted}"
|
||||
FontSize="9" Foreground="{DynamicResource TextMuted}"
|
||||
VerticalAlignment="Center" Margin="10,0,0,0" IsHitTestVisible="False"/>
|
||||
</Grid>
|
||||
<!-- UC-A14 팝업 내 방향키/Tab 탐색 -->
|
||||
<Popup x:Name="Popup" Placement="Bottom" IsOpen="{TemplateBinding IsDropDownOpen}"
|
||||
AllowsTransparency="True" Focusable="False" PopupAnimation="Slide">
|
||||
<Border x:Name="DropDown" Background="{StaticResource CardBg}"
|
||||
BorderBrush="{StaticResource BorderBrush}" BorderThickness="1" CornerRadius="8" Padding="4"
|
||||
MinWidth="{TemplateBinding ActualWidth}" MaxHeight="340">
|
||||
<Border x:Name="DropDown" Background="{DynamicResource CardBg}"
|
||||
BorderBrush="{DynamicResource BorderBrush}" BorderThickness="1" CornerRadius="8" Padding="4"
|
||||
MinWidth="{TemplateBinding ActualWidth}" MaxHeight="340"
|
||||
Effect="{StaticResource PopupShadow}">
|
||||
<ScrollViewer VerticalScrollBarVisibility="Auto">
|
||||
<StackPanel IsItemsHost="True" KeyboardNavigation.DirectionalNavigation="Contained"/>
|
||||
</ScrollViewer>
|
||||
|
|
@ -389,7 +537,7 @@
|
|||
</Grid>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsDropDownOpen" Value="True">
|
||||
<Setter TargetName="MainBorder" Property="BorderBrush" Value="{StaticResource AccentBrush}"/>
|
||||
<Setter TargetName="MainBorder" Property="BorderBrush" Value="{DynamicResource AccentBrush}"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter Property="Opacity" Value="0.5"/>
|
||||
|
|
@ -400,7 +548,7 @@
|
|||
</Setter>
|
||||
</Style>
|
||||
|
||||
<!-- ===== 얇은 스크롤바 ===== -->
|
||||
<!-- ===== 얇은 스크롤바 (UC-T22 썸 색 토큰) ===== -->
|
||||
<Style TargetType="ScrollBar">
|
||||
<Setter Property="Width" Value="8"/>
|
||||
<Setter Property="Background" Value="Transparent"/>
|
||||
|
|
@ -415,7 +563,7 @@
|
|||
<Thumb>
|
||||
<Thumb.Template>
|
||||
<ControlTemplate TargetType="Thumb">
|
||||
<Border CornerRadius="4" Background="{StaticResource BorderBrush}"/>
|
||||
<Border CornerRadius="4" Background="{DynamicResource ScrollBarThumbBrush}"/>
|
||||
</ControlTemplate>
|
||||
</Thumb.Template>
|
||||
</Thumb>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue