캔버스·인스펙터 잔손질 넷 — 마퀴·치수 칩·죽은 버튼·잘린 설명
## 패널 안에 그린 마퀴가 아무것도 안 잡았다 마퀴가 최상위만 훑고 컨테이너 안으로 안 들어갔다. 패널 안 체크박스 5개를 한 번에 고르려고 안쪽을 끌면 패널만 잡히거나 아무것도 안 잡혀서, Ctrl+클릭 반복이나 레이어 목록으로 우회했다. 컨테이너 자식은 전체 컨트롤의 <b>18.3%</b>(실측 18,749개/컨테이너 4,099개)라 드문 경우가 아니다. 규칙은 <b>'담김'</b>이다 — 마퀴가 컨테이너 사각형 안에 들어가 있으면 그 안의 것을 고른다 (내 상자가 패널보다 작으니 그 안을 고르려는 뜻이다). 걸치기만 하면 예전처럼 패널이 잡힌다. 모드도 수정키도 없이 <b>그린 모양만으로</b> 갈리므로 예측할 수 있다. 한 군데를 더 고쳐야 했다. 클릭 선택이 쓰는 GroupMatesOf 는 자식을 부모 컨테이너로 되돌리는데 (패널 안의 것을 집으면 패널이 움직여야 하므로 옳다) 마퀴가 그것을 그대로 쓰고 있었다 — 안쪽을 정확히 골라 놓고도 결과가 다시 패널 하나가 되어 위 규칙이 아무 일도 못 한다. 마퀴 전용 경로를 따로 뒀다. 걸치기 동작이 그대로인 것도 검사로 고정했다. ## 끄는 동안 숫자가 캔버스에 없었다 라벨 폭을 종이 칸에 맞추는 동안 숫자는 300px 떨어진 인스펙터에만 떴다 — 끌고, 손 떼고, 오른쪽 보고, 다시 끈다. 간격 수치 칩은 <b>균등 스냅이 성립할 때만</b> 나타나므로 "지금 이게 몇 px 인가"는 드래그 중에 알 방법이 아예 없었다. 이동이면 좌표, 크기 조절이면 크기를 보여 준다 — 지금 <b>바꾸고 있는 값</b>이 그것이다. 오버레이 층이라 종이에는 없고, 줌이 걸린 층이라 역배율로 글자 크기를 화면 고정으로 만든다. ## 눌러도 아무 일이 없는 ⋮ 버튼 Command·Click·ContextMenu 가 <b>전부 없었다</b>. 그런데 툴팁은 '이 컨트롤에 대한 명령'이라 "단일 선택일 때만 되는 뭔가가 있다"고 오해시켰다. 없는 버튼보다 죽은 버튼이 나쁘다 — 컨트롤 단위 명령은 캔버스 우클릭 메뉴에 이미 다 있다. ## 주석이 논증한 값과 실제 값이 달랐다 라벨 폭 주석이 "92px + 줄바꿈이면 두 줄로 접혀 전부 읽힌다"고 근거까지 적어 놓고 값은 72 였다. 그래서 '액션 대상 컨…' 처럼 잘렸다. 92 로 맞췄다. 같은 자리에서 설명 행(ReadOnlyRow)이 값처럼 잘리고 있었다 — "타입이 달라 값의 뜻이 다른 속성 2개 — 타입별로 따로 고르세요" 에서 <b>지시에 해당하는 뒷부분</b>이 사라져 무엇을 하라는 건지 알 수 없었다. 접어서 다 보여 준다. ## 판정 - 단위 시험 388 · edit-smoke 396건 전건 통과 (마퀴 2건 · 치수 칩 4건 추가) - --dialog-shots 69장 전건 통과 (인스펙터 8종을 눈으로 대조 — 라벨·설명 잘림 없음) - --modal-check · --maxrect · --scale-budget 전건 통과 - --db-render P062 md5 8d683835f5d81e7bb41c79071d6bf954 불변 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
f6b456753c
commit
8c76a978a9
@@ -175,7 +175,8 @@
|
||||
(자르기보다 낫다 — 잘린 라벨은 툴팁을 띄워봐야 아는 정보가 된다).
|
||||
-->
|
||||
<Style x:Key="RowLabel" TargetType="TextBlock">
|
||||
<Setter Property="Width" Value="72"/>
|
||||
<!-- 위 주석이 92 를 논증해 놓고 값은 72 였다 — 그래서 '액션 대상 컨…' 처럼 잘렸다 -->
|
||||
<Setter Property="Width" Value="92"/>
|
||||
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||
<Setter Property="Foreground" Value="{DynamicResource B.Muted}"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
@@ -694,8 +695,15 @@
|
||||
<DataTemplate DataType="{x:Type ins:ReadOnlyRowViewModel}">
|
||||
<DockPanel Margin="0,2">
|
||||
<TextBlock Text="{Binding Label}" Style="{StaticResource RowLabel}"/>
|
||||
<!--
|
||||
이 자리는 값이 아니라 <b>설명</b>이다 — 자르면 결론이 사라진다.
|
||||
"타입이 달라 값의 뜻이 다른 속성 2개 — 타입별로 따로 고르세요" 에서
|
||||
지시에 해당하는 뒷부분이 잘려 나가 무엇을 하라는 건지 알 수 없었다.
|
||||
접어서 다 보여 주고, 그래도 좁으면 툴팁이 받는다.
|
||||
-->
|
||||
<TextBlock Text="{Binding ValueText}" FontSize="11" Foreground="{DynamicResource B.Muted}"
|
||||
VerticalAlignment="Center" TextTrimming="CharacterEllipsis"/>
|
||||
VerticalAlignment="Center" TextWrapping="Wrap"
|
||||
ToolTip="{Binding ValueText}"/>
|
||||
</DockPanel>
|
||||
</DataTemplate>
|
||||
|
||||
@@ -906,11 +914,11 @@
|
||||
<ContentControl DockPanel.Dock="Left" Margin="0,0,7,0" VerticalAlignment="Center"
|
||||
IsTabStop="False" Focusable="False"
|
||||
Content="{Binding HeaderIcon, Converter={StaticResource IconName}, ConverterParameter=16|B.Muted}"/>
|
||||
<Button DockPanel.Dock="Right" Width="24" Height="24" Padding="0"
|
||||
Style="{StaticResource Subtle}" ToolTip="이 컨트롤에 대한 명령"
|
||||
AutomationProperties.Name="더보기"
|
||||
Visibility="{Binding IsSingleSelection, Converter={StaticResource BoolToVisibility}}"
|
||||
Content="{Binding Source=ellipsis-vertical, Converter={StaticResource IconName}, ConverterParameter=14|B.Muted}"/>
|
||||
<!--
|
||||
⋮ 버튼을 지웠다. Command·Click·ContextMenu 가 <b>전부 없어</b> 눌러도 아무 일이 없었는데,
|
||||
툴팁은 '이 컨트롤에 대한 명령' 이라 '단일 선택일 때만 되는 뭔가가 있다'고 오해시켰다.
|
||||
없는 버튼보다 죽은 버튼이 나쁘다. 컨트롤 단위 명령은 캔버스 우클릭 메뉴에 다 있다.
|
||||
-->
|
||||
<TextBlock Text="{Binding HeaderName}" FontWeight="Bold" FontSize="12.5"
|
||||
Foreground="{DynamicResource B.Ink}" VerticalAlignment="Center"
|
||||
TextTrimming="CharacterEllipsis" ToolTip="{Binding Summary}"/>
|
||||
|
||||
@@ -66,6 +66,22 @@
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
|
||||
<!--
|
||||
끄는 동안의 치수·좌표 — 편집 크롬이라 종이에는 없다.
|
||||
줌이 걸린 층이라 역배율로 되돌려 글자 크기를 화면 고정으로 만든다
|
||||
(간격 수치 칩이 이미 같은 방식을 쓴다).
|
||||
-->
|
||||
<Border Canvas.Left="{Binding DragBadgeX}" Canvas.Top="{Binding DragBadgeY}"
|
||||
Background="{DynamicResource B.AccentFill}" CornerRadius="3" Padding="5,1"
|
||||
RenderTransformOrigin="0,0"
|
||||
Visibility="{Binding ShowDragBadge, Converter={StaticResource BoolToVisibility}}">
|
||||
<Border.RenderTransform>
|
||||
<ScaleTransform ScaleX="{Binding InverseZoom}" ScaleY="{Binding InverseZoom}"/>
|
||||
</Border.RenderTransform>
|
||||
<TextBlock Text="{Binding DragBadgeText}" FontSize="11"
|
||||
Foreground="{DynamicResource B.OnAccent}"/>
|
||||
</Border>
|
||||
|
||||
<!-- 마퀴(러버밴드) -->
|
||||
<Rectangle Canvas.Left="{Binding MarX}" Canvas.Top="{Binding MarY}"
|
||||
Width="{Binding MarW}" Height="{Binding MarH}"
|
||||
|
||||
Reference in New Issue
Block a user