레이어 패널 3건 수정 — 목록에서 Ctrl+G, 스크롤바 잘림, 검색칩 이중 테두리
1) 목록에서 단축키가 안 먹었다 CanvasKeyboardBehavior 는 캔버스에 붙어 있어 포커스가 레이어 목록에 있으면 이벤트가 거기까지 가지 않는다. 여러 행을 골라 놓고 Ctrl+G 를 눌러도 아무 일이 없던 이유다. 목록에 KeyDown 을 달아 그룹·삭제·복사·되돌리기를 처리한다. 방향키·Home/End·문자 입력은 넘기지 않는다(목록 자체의 이동과 형식 검색이 우선). 이름 편집 중에는 통과시킨다. 2) 세로 스크롤바가 오른쪽이 잘려 보였다 — 앱 전체 공통 결함 Thumb 스타일의 MinWidth/MinHeight 24 가 폭 9 짜리 막대 안에서 썸을 24 폭으로 강제해 오른쪽이 통째로 잘렸다(둥근 모서리가 사라지고 수직으로 싹둑 잘린 막대). 가로 막대는 아래쪽이 같은 식으로 잘렸다. 최소 '길이'는 MinThumbTrack.MinThumbLength=44 가 이미 보장하므로 최소 '두께'는 지운다. 화살표 글리프도 7 단위 + 스트로크 1.4 = 8.4 라 폭 9 에서 캡이 경계에 닿아 오른팔이 잘렸다 — 막대 폭을 11 로 올려 양옆 여유를 준다. 3) 검색칩 안에 상자가 하나 더 그려졌다 전역 TextBox 템플릿은 BorderThickness=1 이 하드코딩돼 있어 인스턴스에서 0 을 줘도 무시된다. 칩 전용 ChipTextBox 스타일(테두리 없는 템플릿)을 만들고, 포커스 표시는 칩 쪽 IsKeyboardFocusWithin 으로 옮겼다. 회귀: 테스트 124/124, 편집 스모크 실패 0, DB 왕복 1,271건 diff 0/예외 0, 종이 렌더 P062 바이트 동일. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
76584e5004
commit
c22d84fb61
@@ -59,14 +59,23 @@
|
||||
테두리가 없으면 칩 경계 대비가 정확히 1.00:1 — 입력란이 거기 있다는 것 자체가 안 보인다.
|
||||
-->
|
||||
<Border Height="32" CornerRadius="7" Margin="8,8,0,6"
|
||||
Background="{DynamicResource B.Input}"
|
||||
BorderThickness="1" BorderBrush="{DynamicResource B.InputBorder}">
|
||||
Background="{DynamicResource B.Input}" BorderThickness="1">
|
||||
<Border.Style>
|
||||
<Style TargetType="Border">
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource B.InputBorder}"/>
|
||||
<Style.Triggers>
|
||||
<!-- 포커스 표시는 칩이 준다 — 안쪽 입력이 자기 테두리를 그리면 상자 속 상자가 된다 -->
|
||||
<Trigger Property="IsKeyboardFocusWithin" Value="True">
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource B.Accent}"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</Border.Style>
|
||||
<DockPanel>
|
||||
<ContentControl DockPanel.Dock="Left" Margin="9,0,7,0" VerticalAlignment="Center" IsTabStop="False"
|
||||
Content="{Binding Source=search, Converter={StaticResource IconName}, ConverterParameter=13|B.Muted}"/>
|
||||
<Grid>
|
||||
<TextBox x:Name="LayerSearchBox" MinHeight="0" Padding="0,0,6,0" BorderThickness="0"
|
||||
Background="Transparent" VerticalContentAlignment="Center"
|
||||
<TextBox x:Name="LayerSearchBox" Style="{StaticResource ChipTextBox}"
|
||||
Text="{Binding CurrentDesigner.LayerFilter, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
<TextBlock Text="레이어 검색…" FontSize="12" Foreground="{DynamicResource B.Muted}"
|
||||
VerticalAlignment="Center" IsHitTestVisible="False" Margin="1,0,0,0">
|
||||
@@ -104,6 +113,7 @@
|
||||
SelectionMode="Extended" Padding="0,6,0,0"
|
||||
MouseDoubleClick="OnLayerDoubleClick"
|
||||
PreviewMouseLeftButtonDown="OnLayerRowPressed"
|
||||
KeyDown="OnLayerListKeyDown"
|
||||
ScrollViewer.HorizontalScrollBarVisibility="Disabled">
|
||||
<ListBox.ItemTemplateSelector>
|
||||
<ctl:LayerRowTemplateSelector>
|
||||
|
||||
Reference in New Issue
Block a user