AX Agent 작업 폴더 선택 팝업 스타일 정리 및 최근 항목 UI 개선
Some checks failed
Release Gate / gate (push) Has been cancelled

- 최근 작업 폴더 팝업 외곽 radius, 그림자, 내부 여백을 조정해 레퍼런스에 더 가까운 카드형 스타일로 보정
- 최근 폴더 항목을 하단 구분선 방식에서 개별 라운드 row 방식으로 변경하고 선택 체크와 텍스트 계층을 정돈
- 다른 폴더 선택 행도 동일한 row 스타일로 통일해 팝업 전체 시각 언어를 일관되게 정리
- README 및 DEVELOPMENT 문서에 2026-04-05 23:28 (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 20:45:30 +09:00
parent a5790e28fb
commit 793a301353
4 changed files with 56 additions and 61 deletions

View File

@@ -1491,22 +1491,22 @@
<Border Background="{DynamicResource LauncherBackground}"
BorderBrush="{DynamicResource BorderColor}"
BorderThickness="1"
CornerRadius="16"
MinWidth="286"
MaxWidth="332">
CornerRadius="18"
MinWidth="300"
MaxWidth="348">
<Border.Effect>
<DropShadowEffect BlurRadius="22" ShadowDepth="0" Opacity="0.14"/>
<DropShadowEffect BlurRadius="24" ShadowDepth="0" Opacity="0.12"/>
</Border.Effect>
<StackPanel Margin="0">
<TextBlock Text="최근"
Margin="16,14,16,10"
FontSize="12.5"
Margin="18,16,18,10"
FontSize="13"
FontWeight="SemiBold"
Foreground="{DynamicResource PrimaryText}"/>
<ScrollViewer MaxHeight="360"
VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Disabled"
Padding="10,0,10,10">
Padding="12,0,12,12">
<StackPanel x:Name="FolderMenuItems" Margin="2"/>
</ScrollViewer>
</StackPanel>

View File

@@ -1442,8 +1442,8 @@ public partial class ChatWindow : Window
{
Height = 1,
Background = TryFindResource("BorderColor") as Brush ?? Brushes.Gray,
Margin = new Thickness(8, 4, 8, 8),
Opacity = 0.45,
Margin = new Thickness(6, 6, 6, 10),
Opacity = 0.35,
});
AddWorkspaceRows(remainingFolders);
}
@@ -1453,9 +1453,9 @@ public partial class ChatWindow : Window
FolderMenuItems.Children.Add(new TextBlock
{
Text = "최근 작업 폴더가 없습니다.",
FontSize = 11.5,
FontSize = 12,
Foreground = secondaryText,
Margin = new Thickness(10, 6, 10, 10),
Margin = new Thickness(10, 8, 10, 12),
});
}
@@ -1463,43 +1463,27 @@ public partial class ChatWindow : Window
{
Height = 1,
Background = TryFindResource("BorderColor") as Brush ?? Brushes.Gray,
Margin = new Thickness(8, 8, 8, 8),
Opacity = 0.45,
Margin = new Thickness(6, 8, 6, 10),
Opacity = 0.35,
});
// 다른 폴더 선택 버튼
var browseSp = new StackPanel { Orientation = Orientation.Horizontal };
browseSp.Children.Add(new TextBlock
{
Text = "\uE710",
FontFamily = new FontFamily("Segoe MDL2 Assets"),
FontSize = 13,
Foreground = accentBrush,
VerticalAlignment = VerticalAlignment.Center,
Margin = new Thickness(0, 0, 8, 0),
});
browseSp.Children.Add(new TextBlock
{
Text = "다른 폴더 선택",
FontSize = 13,
FontWeight = FontWeights.SemiBold,
Foreground = primaryText,
VerticalAlignment = VerticalAlignment.Center,
});
var browseBorder = new Border
{
Child = browseSp,
Background = Brushes.Transparent,
CornerRadius = new CornerRadius(8),
Cursor = Cursors.Hand,
Padding = new Thickness(10, 7, 10, 7),
};
browseBorder.MouseEnter += (s, _) => { if (s is Border b) b.Background = new SolidColorBrush(Color.FromArgb(0x18, 0xFF, 0xFF, 0xFF)); };
browseBorder.MouseLeave += (s, _) => { if (s is Border b) b.Background = Brushes.Transparent; };
var browseBorder = CreatePopupMenuRow(
"\uE710",
"다른 폴더 선택",
string.Empty,
false,
accentBrush,
secondaryText,
primaryText,
() =>
{
FolderMenuPopup.IsOpen = false;
BrowseWorkFolder();
});
browseBorder.Margin = new Thickness(0);
browseBorder.MouseLeftButtonUp += (_, _) =>
{
FolderMenuPopup.IsOpen = false;
BrowseWorkFolder();
};
FolderMenuItems.Children.Add(browseBorder);
}
@@ -13174,16 +13158,17 @@ public partial class ChatWindow : Window
Brush primaryText,
Action? onClick)
{
var borderColor = TryFindResource("BorderColor") as Brush ?? BrushFromHex("#E5E7EB");
var hintBackground = TryFindResource("HintBackground") as Brush ?? BrushFromHex("#F8FAFC");
var hoverBackground = TryFindResource("ItemHoverBackground") as Brush ?? BrushFromHex("#F8FAFC");
var row = new Border
{
Background = selected ? hintBackground : Brushes.Transparent,
BorderBrush = borderColor,
BorderThickness = new Thickness(0, 0, 0, 1),
Padding = new Thickness(10, 8, 10, 8),
BorderBrush = selected ? BrushFromHex("#D6E4FF") : Brushes.Transparent,
BorderThickness = new Thickness(1),
CornerRadius = new CornerRadius(12),
Padding = new Thickness(12, 10, 12, 10),
Cursor = Cursors.Hand,
Margin = new Thickness(0),
Margin = new Thickness(0, 0, 0, 6),
};
var grid = new Grid();
@@ -13195,10 +13180,10 @@ public partial class ChatWindow : Window
{
Text = icon,
FontFamily = new FontFamily("Segoe MDL2 Assets"),
FontSize = 12,
FontSize = 14,
Foreground = selected ? accentBrush : secondaryText,
Margin = new Thickness(0, 1, 8, 0),
VerticalAlignment = VerticalAlignment.Top,
Margin = new Thickness(0, 1, 10, 0),
VerticalAlignment = VerticalAlignment.Center,
};
grid.Children.Add(iconBlock);
@@ -13206,18 +13191,21 @@ public partial class ChatWindow : Window
textStack.Children.Add(new TextBlock
{
Text = title,
FontSize = 12,
FontSize = 13.5,
FontWeight = selected ? FontWeights.SemiBold : FontWeights.Medium,
Foreground = primaryText,
});
textStack.Children.Add(new TextBlock
if (!string.IsNullOrWhiteSpace(description))
{
Text = description,
FontSize = 10.5,
Foreground = secondaryText,
Margin = new Thickness(0, 2, 0, 0),
TextWrapping = TextWrapping.Wrap,
});
textStack.Children.Add(new TextBlock
{
Text = description,
FontSize = 11.5,
Foreground = secondaryText,
Margin = new Thickness(0, 3, 0, 0),
TextWrapping = TextWrapping.Wrap,
});
}
Grid.SetColumn(textStack, 1);
grid.Children.Add(textStack);
@@ -13225,12 +13213,14 @@ public partial class ChatWindow : Window
{
var check = CreateSimpleCheck(accentBrush, 14);
Grid.SetColumn(check, 2);
check.Margin = new Thickness(10, 0, 0, 0);
if (check is FrameworkElement element)
element.VerticalAlignment = VerticalAlignment.Center;
grid.Children.Add(check);
}
row.Child = grid;
var hoverBg = TryFindResource("ItemHoverBackground") as Brush ?? Brushes.Transparent;
row.MouseEnter += (_, _) => row.Background = selected ? hintBackground : hoverBg;
row.MouseEnter += (_, _) => row.Background = selected ? hintBackground : hoverBackground;
row.MouseLeave += (_, _) => row.Background = selected ? hintBackground : Brushes.Transparent;
row.MouseLeftButtonUp += (_, _) => onClick?.Invoke();
return row;