레이어 패널: 컨트롤 이름 병기 + 더블클릭으로 캔버스 이동
레이어 목록이 Text 만 보여줘서 chkOrientation1~5 처럼 문구가 같은 컨트롤들이 전부 같은 줄로 보였다. 두 줄로 나눠 아래에 Id 를 병기한다 (Text 가 없어 LayerName 이 곧 Id 인 경우는 중복이라 숨긴다). 그리고 컨트롤이 수백 개인 서식에서는 목록에서 이름을 찾아도 종이 어디에 있는지 알 수 없었다 — 더블클릭하면 해당 페이지로 전환 + 선택 + 캔버스 스크롤. 이미 전부 보이면 스크롤하지 않는다. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
e18ad87100
commit
d09bd90c8e
@@ -621,6 +621,30 @@ public sealed class DesignerViewModel : ViewModelBase
|
||||
#region Events
|
||||
/// <summary>인라인 텍스트 편집 요청 — 캔버스 뷰(EditorLayer)가 구독</summary>
|
||||
public event Action<ControlViewModel>? InlineEditRequested;
|
||||
|
||||
/// <summary>캔버스를 특정 컨트롤로 스크롤 요청 — 캔버스 뷰가 구독(뷰포트를 VM 이 모르므로 위임)</summary>
|
||||
public event Action<ControlViewModel>? ScrollToRequested;
|
||||
#endregion
|
||||
|
||||
#region Methods - 컨트롤로 이동
|
||||
/// <summary>
|
||||
/// 레이어 목록에서 고른 컨트롤을 선택하고 화면을 그리로 옮긴다.
|
||||
///
|
||||
/// 컨트롤이 수백 개인 서식(운영 최대 1,067개)에서는 목록에서 이름을 찾아도 그게 종이 어디에
|
||||
/// 있는지 알 수 없었다. 다중 페이지 서식이면 다른 페이지에 있을 수도 있어 더 그렇다.
|
||||
/// 스크롤은 뷰포트 크기를 알아야 하므로 캔버스 뷰에 위임한다.
|
||||
/// </summary>
|
||||
public void RevealControl(ControlViewModel viewModel)
|
||||
{
|
||||
// 다른 페이지의 컨트롤이면 그 페이지를 활성으로 — 안 그러면 선택만 되고 화면은 안 따라간다
|
||||
var page = PageOf(viewModel);
|
||||
if (page is not null && !ReferenceEquals(page, SelectedPage))
|
||||
{
|
||||
SelectedPage = page;
|
||||
}
|
||||
Selection.SetSingle(viewModel);
|
||||
ScrollToRequested?.Invoke(viewModel);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Methods - 인라인 텍스트 편집
|
||||
|
||||
Reference in New Issue
Block a user