AX Agent 프리뷰 UI를 claw-code 스타일로 정리하고 프리뷰 surface를 공통화
Some checks failed
Release Gate / gate (push) Has been cancelled

- AX Agent 권한 승인 프리뷰에 공통 preview surface helper를 도입해 제목/요약/본문 box 구성을 일관되게 정리함
- 우측 파일 프리뷰 패널에 파일명, 경로, 형식·크기 메타 헤더를 추가하고 텍스트 프리뷰를 bordered preview box 안에 렌더하도록 개선함
- README와 DEVELOPMENT 문서에 2026-04-06 01:08 (KST) 기준 변경 이력 반영 완료
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ 경고 0 / 오류 0 확인
This commit is contained in:
2026-04-05 22:03:16 +09:00
parent 53965083e3
commit 1948af3cc4
6 changed files with 239 additions and 139 deletions

View File

@@ -5240,43 +5240,88 @@
BorderBrush="{DynamicResource BorderColor}"
BorderThickness="1,0,0,0">
<DockPanel LastChildFill="True">
<!-- 탭 바 + 도구 버튼 (DockPanel.Top — WebView2 위에 독립 레이어) -->
<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">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<ScrollViewer Grid.Column="0" HorizontalScrollBarVisibility="Hidden"
VerticalScrollBarVisibility="Disabled" CanContentScroll="True">
<StackPanel x:Name="PreviewTabPanel" Orientation="Horizontal"/>
</ScrollViewer>
<StackPanel Grid.Column="1" Orientation="Horizontal" Margin="4,0">
<Button x:Name="BtnOpenExternal" Style="{StaticResource GhostBtn}" Padding="6"
Click="BtnOpenExternal_Click" ToolTip="외부 프로그램으로 열기" Cursor="Hand">
<TextBlock Text="&#xE8A7;" FontFamily="Segoe MDL2 Assets" FontSize="12"
Foreground="{DynamicResource SecondaryText}" IsHitTestVisible="False"/>
</Button>
<Button Style="{StaticResource GhostBtn}" Padding="6"
Click="BtnClosePreview_Click" ToolTip="미리보기 닫기" Cursor="Hand">
<TextBlock Text="&#xE711;" FontFamily="Segoe MDL2 Assets" FontSize="10"
Foreground="{DynamicResource SecondaryText}" IsHitTestVisible="False"/>
</Button>
</StackPanel>
</Grid>
Padding="12,10,12,8">
<StackPanel>
<Grid Margin="0,0,0,8">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<StackPanel>
<TextBlock x:Name="PreviewHeaderTitle"
Text="미리보기"
FontSize="13"
FontWeight="SemiBold"
Foreground="{DynamicResource PrimaryText}"/>
<TextBlock x:Name="PreviewHeaderSubtitle"
Text="선택한 파일이 여기에 표시됩니다"
FontSize="11.5"
Margin="0,2,0,0"
Foreground="{DynamicResource SecondaryText}"
TextTrimming="CharacterEllipsis"/>
</StackPanel>
<StackPanel Grid.Column="1" Orientation="Horizontal" Margin="8,0,0,0">
<Button x:Name="BtnOpenExternal" Style="{StaticResource GhostBtn}" Padding="6"
Click="BtnOpenExternal_Click" ToolTip="외부 프로그램으로 열기" Cursor="Hand">
<TextBlock Text="&#xE8A7;" FontFamily="Segoe MDL2 Assets" FontSize="12"
Foreground="{DynamicResource SecondaryText}" IsHitTestVisible="False"/>
</Button>
<Button Style="{StaticResource GhostBtn}" Padding="6"
Click="BtnClosePreview_Click" ToolTip="미리보기 닫기" Cursor="Hand">
<TextBlock Text="&#xE711;" FontFamily="Segoe MDL2 Assets" FontSize="10"
Foreground="{DynamicResource SecondaryText}" IsHitTestVisible="False"/>
</Button>
</StackPanel>
</Grid>
<Border Background="{DynamicResource LauncherBackground}"
BorderBrush="{DynamicResource BorderColor}" BorderThickness="1"
CornerRadius="10"
Padding="0"
Panel.ZIndex="10"
Focusable="True"
PreviewMouseDown="PreviewTabBar_PreviewMouseDown">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<ScrollViewer Grid.Column="0" HorizontalScrollBarVisibility="Hidden"
VerticalScrollBarVisibility="Disabled" CanContentScroll="True">
<StackPanel x:Name="PreviewTabPanel" Orientation="Horizontal"/>
</ScrollViewer>
<Border Grid.Column="1"
Margin="6,6,6,6"
Padding="8,4"
Background="{DynamicResource HintBackground}"
BorderBrush="{DynamicResource BorderColor}"
BorderThickness="1"
CornerRadius="999">
<TextBlock x:Name="PreviewHeaderMeta"
Text="파일 메타"
FontSize="10.5"
Foreground="{DynamicResource SecondaryText}"/>
</Border>
</Grid>
</Border>
</StackPanel>
</Border>
<!-- 미리보기 콘텐츠 영역 (DockPanel.Fill — WebView2는 여기에만 존재) -->
<Grid ClipToBounds="True">
<Grid ClipToBounds="True" Background="{DynamicResource LauncherBackground}">
<wv2:WebView2 x:Name="PreviewWebView" Visibility="Collapsed"/>
<ScrollViewer x:Name="PreviewTextScroll" Visibility="Collapsed"
VerticalScrollBarVisibility="Auto" Padding="12,8">
<TextBlock x:Name="PreviewTextBlock" TextWrapping="Wrap"
FontFamily="Consolas" FontSize="12"
Foreground="{DynamicResource PrimaryText}"/>
VerticalScrollBarVisibility="Auto" Padding="16,14">
<Border Background="{DynamicResource HintBackground}"
BorderBrush="{DynamicResource BorderColor}"
BorderThickness="1"
CornerRadius="12"
Padding="12,10">
<TextBlock x:Name="PreviewTextBlock" TextWrapping="Wrap"
FontFamily="Consolas" FontSize="12"
Foreground="{DynamicResource PrimaryText}"/>
</Border>
</ScrollViewer>
<DataGrid x:Name="PreviewDataGrid" Visibility="Collapsed"
AutoGenerateColumns="True" IsReadOnly="True"