AX Agent UI/UX 동등 품질 정비: ChatWindow 테마 일관성 강화 및 컨텍스트 메뉴 커스텀 팝업 전환
- ChatWindow.xaml에서 hover/selected/상태 배지/토스트/입력 칩/파일 미리보기 영역의 하드코딩 색상을 DynamicResource 기반으로 정리해 Codex/claude-code 지향 테마 일관성 강화 - 상단/하단 상태 배지와 데이터그리드 시각 요소를 PrimaryText/AccentColor/HintBackground/BorderColor로 통일해 라이트·다크 전환 시 가독성 확보 - ChatWindow.xaml.cs에서 ContextMenu/MenuItem 기반 구현 제거, 공통 커스텀 Popup 메뉴 빌더(CreateThemedPopupMenu/CreatePopupMenuItem)로 최근 폴더/메시지 우클릭 메뉴를 통합 - 기본 MessageBox.Show 사용 경로를 CustomMessageBox.Show로 교체하여 지침 준수(메시지 삭제/파일 삭제 확인) - 검증: dotnet build 경고 0 오류 0, dotnet test(371/371 통과)
This commit is contained in:
@@ -38,7 +38,7 @@
|
||||
</Border>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter TargetName="Bd" Property="Background" Value="#15FFFFFF"/>
|
||||
<Setter TargetName="Bd" Property="Background" Value="{DynamicResource ItemHoverBackground}"/>
|
||||
<Setter TargetName="Bd" Property="Opacity" Value="0.85"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
@@ -72,7 +72,7 @@
|
||||
<!-- IsChecked를 뒤에 두어 호버보다 선택 상태가 항상 우선 적용 -->
|
||||
<Trigger Property="IsChecked" Value="True">
|
||||
<Setter TargetName="Bd" Property="Background" Value="{DynamicResource ItemSelectedBackground}"/>
|
||||
<Setter Property="Foreground" Value="White"/>
|
||||
<Setter Property="Foreground" Value="{DynamicResource PrimaryText}"/>
|
||||
<Setter Property="FontWeight" Value="Bold"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
@@ -102,7 +102,7 @@
|
||||
</Border>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter TargetName="Bd" Property="Background" Value="#10FFFFFF"/>
|
||||
<Setter TargetName="Bd" Property="Background" Value="{DynamicResource ItemHoverBackground}"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter Property="Opacity" Value="0.35"/>
|
||||
@@ -395,11 +395,12 @@
|
||||
</Grid>
|
||||
<Border x:Name="ConversationStatusStrip" Visibility="Collapsed"
|
||||
Margin="10,0,0,0" Padding="8,2"
|
||||
CornerRadius="8" Background="#1A0F766E"
|
||||
BorderBrush="#330F766E" BorderThickness="1">
|
||||
CornerRadius="8"
|
||||
Background="{DynamicResource HintBackground}"
|
||||
BorderBrush="{DynamicResource BorderColor}" BorderThickness="1">
|
||||
<TextBlock x:Name="ConversationStatusStripLabel" Text=""
|
||||
FontSize="10" FontWeight="SemiBold"
|
||||
Foreground="#0F766E"
|
||||
Foreground="{DynamicResource AccentColor}"
|
||||
VerticalAlignment="Center"/>
|
||||
</Border>
|
||||
</StackPanel>
|
||||
@@ -467,7 +468,7 @@
|
||||
VerticalAlignment="Center" TextTrimming="CharacterEllipsis"
|
||||
MaxWidth="300" Margin="0,0,12,0"/>
|
||||
<!-- 프로그레스 바 -->
|
||||
<Border Grid.Column="2" CornerRadius="3" Background="#15FFFFFF"
|
||||
<Border Grid.Column="2" CornerRadius="3" Background="{DynamicResource ItemHoverBackground}"
|
||||
Height="6" VerticalAlignment="Center" Margin="0,0,12,0">
|
||||
<Border x:Name="ProgressFill" CornerRadius="3" HorizontalAlignment="Left"
|
||||
Width="0" Background="{DynamicResource AccentColor}"/>
|
||||
@@ -783,14 +784,16 @@
|
||||
Panel.ZIndex="20"
|
||||
HorizontalAlignment="Center" VerticalAlignment="Bottom"
|
||||
Margin="0,0,0,16"
|
||||
Background="#E0202030" CornerRadius="20"
|
||||
Background="{DynamicResource ItemBackground}"
|
||||
BorderBrush="{DynamicResource BorderColor}" BorderThickness="1"
|
||||
CornerRadius="20"
|
||||
Padding="16,8,16,8" Opacity="0"
|
||||
IsHitTestVisible="False">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock x:Name="ToastIcon" Text="" FontFamily="Segoe MDL2 Assets" FontSize="12"
|
||||
Foreground="#78E08F" VerticalAlignment="Center" Margin="0,0,6,0"/>
|
||||
Foreground="{DynamicResource AccentColor}" VerticalAlignment="Center" Margin="0,0,6,0"/>
|
||||
<TextBlock x:Name="ToastText" Text="" FontSize="12"
|
||||
Foreground="White" VerticalAlignment="Center"/>
|
||||
Foreground="{DynamicResource PrimaryText}" VerticalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
@@ -1092,21 +1095,19 @@
|
||||
HorizontalAlignment="Left" VerticalAlignment="Top"
|
||||
Margin="10,7,0,0" Visibility="Collapsed"
|
||||
CornerRadius="7" Padding="8,3,4,3"
|
||||
Background="{DynamicResource ItemHoverBackground}"
|
||||
IsHitTestVisible="True">
|
||||
<Border.Background>
|
||||
<SolidColorBrush Color="#4B5EFC" Opacity="0.13"/>
|
||||
</Border.Background>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock x:Name="SlashChipText"
|
||||
FontSize="12.5" FontWeight="SemiBold"
|
||||
Foreground="#4B5EFC"
|
||||
Foreground="{DynamicResource AccentColor}"
|
||||
VerticalAlignment="Center"/>
|
||||
<Border x:Name="SlashChipClose" Cursor="Hand"
|
||||
Padding="4,0,2,0" Margin="2,0,0,0"
|
||||
VerticalAlignment="Center">
|
||||
<TextBlock Text=""
|
||||
FontFamily="Segoe MDL2 Assets"
|
||||
FontSize="8" Foreground="#4B5EFC"/>
|
||||
FontSize="8" Foreground="{DynamicResource AccentColor}"/>
|
||||
</Border>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
@@ -1135,13 +1136,13 @@
|
||||
<Border x:Name="BtnPause" Grid.Column="3"
|
||||
Width="32" Height="32" Margin="0,0,2,0"
|
||||
CornerRadius="8" Cursor="Hand"
|
||||
Background="#18D97706" Visibility="Collapsed"
|
||||
Background="{DynamicResource ItemHoverBackground}" Visibility="Collapsed"
|
||||
VerticalAlignment="Bottom"
|
||||
MouseLeftButtonUp="BtnPause_Click"
|
||||
ToolTip="일시정지 / 재개">
|
||||
<TextBlock x:Name="PauseIcon" Text=""
|
||||
FontFamily="Segoe MDL2 Assets" FontSize="12"
|
||||
Foreground="#D97706"
|
||||
Foreground="{DynamicResource AccentColor}"
|
||||
HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
||||
</Border>
|
||||
|
||||
@@ -1167,7 +1168,7 @@
|
||||
VerticalAlignment="Bottom">
|
||||
<Button.Template>
|
||||
<ControlTemplate TargetType="Button">
|
||||
<Border x:Name="Bd" Background="#111827"
|
||||
<Border x:Name="Bd" Background="{DynamicResource AccentColor}"
|
||||
CornerRadius="20">
|
||||
<TextBlock Text="" FontFamily="Segoe MDL2 Assets"
|
||||
FontSize="13" Foreground="White"
|
||||
@@ -1329,7 +1330,7 @@
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<!-- 툴바 -->
|
||||
<Border Grid.Row="0" Background="#08FFFFFF" Padding="8,4">
|
||||
<Border Grid.Row="0" Background="{DynamicResource HintBackground}" Padding="8,4">
|
||||
<Grid>
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left">
|
||||
<TextBlock Text="" FontFamily="Segoe MDL2 Assets" FontSize="12"
|
||||
@@ -1391,14 +1392,14 @@
|
||||
VerticalAlignment="Center">
|
||||
<Border x:Name="RuntimeActivityBadge" Visibility="Collapsed"
|
||||
CornerRadius="4" Padding="5,2" Margin="0,0,8,0"
|
||||
Background="#1A0F766E" ToolTip="현재 실행 중인 작업"
|
||||
Background="{DynamicResource HintBackground}" ToolTip="현재 실행 중인 작업"
|
||||
Cursor="Hand"
|
||||
MouseLeftButtonUp="RuntimeTaskSummary_Click">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock Text="" FontFamily="Segoe MDL2 Assets" FontSize="10"
|
||||
Foreground="#0F766E" VerticalAlignment="Center" Margin="0,0,4,0"/>
|
||||
Foreground="{DynamicResource AccentColor}" VerticalAlignment="Center" Margin="0,0,4,0"/>
|
||||
<TextBlock x:Name="RuntimeActivityLabel" Text="실행 중 0"
|
||||
FontSize="10" Foreground="#0F766E"
|
||||
FontSize="10" Foreground="{DynamicResource AccentColor}"
|
||||
VerticalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
@@ -1427,24 +1428,24 @@
|
||||
</Button>
|
||||
<Border x:Name="SubAgentIndicator" Visibility="Collapsed"
|
||||
CornerRadius="4" Padding="5,2" Margin="0,0,8,0"
|
||||
Background="#1A2563EB" ToolTip="실행 중인 서브에이전트">
|
||||
Background="{DynamicResource HintBackground}" ToolTip="실행 중인 서브에이전트">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock Text="" FontFamily="Segoe MDL2 Assets" FontSize="10"
|
||||
Foreground="#2563EB" VerticalAlignment="Center" Margin="0,0,4,0"/>
|
||||
Foreground="{DynamicResource AccentColor}" VerticalAlignment="Center" Margin="0,0,4,0"/>
|
||||
<TextBlock x:Name="SubAgentIndicatorLabel" Text="서브에이전트 0"
|
||||
FontSize="10" Foreground="#2563EB"
|
||||
FontSize="10" Foreground="{DynamicResource AccentColor}"
|
||||
VerticalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
<!-- 워크플로우 분석기 열기 버튼 (개발자 모드) -->
|
||||
<Border x:Name="BtnShowAnalyzer" Visibility="Collapsed"
|
||||
CornerRadius="4" Padding="5,2" Margin="0,0,8,0"
|
||||
Background="#1A7C3AED" Cursor="Hand" ToolTip="워크플로우 분석기"
|
||||
Background="{DynamicResource HintBackground}" Cursor="Hand" ToolTip="워크플로우 분석기"
|
||||
MouseLeftButtonUp="BtnShowAnalyzer_Click">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock Text="" FontFamily="Segoe MDL2 Assets" FontSize="10"
|
||||
Foreground="#7C3AED" VerticalAlignment="Center" Margin="0,0,4,0"/>
|
||||
<TextBlock Text="분석기" FontSize="10" Foreground="#7C3AED"
|
||||
Foreground="{DynamicResource AccentColor}" VerticalAlignment="Center" Margin="0,0,4,0"/>
|
||||
<TextBlock Text="분석기" FontSize="10" Foreground="{DynamicResource AccentColor}"
|
||||
VerticalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
@@ -1478,7 +1479,7 @@
|
||||
BorderThickness="1,0,0,0">
|
||||
<DockPanel LastChildFill="True">
|
||||
<!-- 탭 바 + 도구 버튼 (DockPanel.Top — WebView2 위에 독립 레이어) -->
|
||||
<Border DockPanel.Dock="Top" Background="#0AFFFFFF"
|
||||
<Border DockPanel.Dock="Top" Background="{DynamicResource HintBackground}"
|
||||
BorderBrush="{DynamicResource BorderColor}" BorderThickness="0,0,0,1"
|
||||
Padding="0" Panel.ZIndex="10" Focusable="True"
|
||||
PreviewMouseDown="PreviewTabBar_PreviewMouseDown">
|
||||
@@ -1518,9 +1519,9 @@
|
||||
<DataGrid x:Name="PreviewDataGrid" Visibility="Collapsed"
|
||||
AutoGenerateColumns="True" IsReadOnly="True"
|
||||
HeadersVisibility="Column" GridLinesVisibility="All"
|
||||
Background="Transparent" Foreground="White"
|
||||
Background="Transparent" Foreground="{DynamicResource PrimaryText}"
|
||||
BorderThickness="0" CanUserAddRows="False"
|
||||
RowBackground="#0AFFFFFF" AlternatingRowBackground="#15FFFFFF"
|
||||
RowBackground="{DynamicResource HintBackground}" AlternatingRowBackground="{DynamicResource ItemHoverBackground}"
|
||||
ColumnHeaderHeight="30" RowHeight="28" FontSize="11.5"/>
|
||||
<TextBlock x:Name="PreviewEmpty" Text="미리보기할 파일이 없습니다"
|
||||
HorizontalAlignment="Center" VerticalAlignment="Center"
|
||||
|
||||
Reference in New Issue
Block a user