choiminyeong 5e5ef8c36f 플랫폼 최초 커밋 + 자동 업데이트 배포 폴더(dist)
소스(Core/Shell/Launcher)와 실행 PC가 받아갈 업데이트 파일(dist)을 함께 올린다.
Launcher가 켤 때 이 저장소의 dist와 D:\UbisamPlatform\bin을 비교해 새 버전이면 받아간다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-21 21:56:35 +09:00

3.5 KiB

패치 01 — 적용 후 발견된 3가지 수정

첫 적용 후 실행 화면에서 나온 문제를 고치는 패치입니다. 이 문서를 Claude Code에 붙여넣고 "이 패치 적용해줘"라고 요청하세요. CLAUDE_CODE_PROMPT.md를 이미 적용한 상태를 전제로 합니다.

문제 1 — 하단 탭 바가 잘린다

ShellWindow.xaml에서 NavList에 Height="56"이 박혀 있는데, 아이콘(22) + 간격(7) + 라벨 + 상하 패딩을 합치면 56을 넘겨서 라벨이 창 밖으로 밀립니다. 높이 지정을 지우고 내용 높이에 맡깁니다.

ShellWindow.xaml의 NavList에서 이 줄을 삭제:

Height="56"

그리고 ShellWindow.xaml.cs의 ApplyNavPosition도 하단일 때 높이를 강제하지 않도록:

NavList.Width = isHorizontal ? double.NaN : 140;
NavList.Height = double.NaN;

문제 2 — 모듈이 떠 있는데도 사선 해치가 배경에 깔린다

해치는 빈 슬롯 표시용이라 모듈이 마운트되면 사라져야 합니다. ShellWindow.xaml의 컨텐츠 Border를 아래로 교체하세요 — CurrentContent가 null일 때만 해치가 됩니다.

<Border Grid.Row="0" Padding="26,22">
    <Border.Style>
        <Style TargetType="Border">
            <Setter Property="Background" Value="{DynamicResource Ubisam.Brush.ContentBackground}"/>
            <Style.Triggers>
                <DataTrigger Binding="{Binding SelectedMainTab.CurrentContent}" Value="{x:Null}">
                    <Setter Property="Background" Value="{DynamicResource Ubisam.Brush.SlotHatch}"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Border.Style>
    <ContentControl Content="{Binding SelectedMainTab.CurrentContent}"/>
</Border>

문제 3 — 컨텐츠가 화면 왼쪽 끝에 붙는다

위 Border의 Padding="26,22"가 이 문제를 함께 해결합니다. 상단 헤더(Padding="26,14")와 세로선이 맞습니다.

Margin이 아니라 Padding인 게 중요합니다 — 배경(해치/바탕색)은 영역 전체를 채우고, 안의 모듈 컨텐츠만 26px 안으로 들어옵니다. 모듈 View는 계속 여백 없이 작성해도 됩니다.

문제 4 (덤) — 아이콘 없는 탭도 아이콘 높이를 차지한다

ShellStyles.xaml의 Ubisam.Style.SidebarItem.Horizontal에서 Path에 x:Name="Ico"를 주고, 트리거를 패딩 변경이 아니라 Path 숨김으로 바꾸세요.

<Path x:Name="Ico"
      Data="{Binding Icon, Converter={StaticResource IconToGeometry}}"
      ... />
<DataTrigger Binding="{Binding Icon, Converter={StaticResource IconToGeometry}}" Value="{x:Null}">
    <Setter TargetName="Ico" Property="Visibility" Value="Collapsed"/>
</DataTrigger>

참고 — 이번 화면에서 아이콘이 안 보인 이유

AppSetup.cs의 AddMain에 icon 인자를 아직 넘기지 않아서 라벨만 나온 상태입니다. 정상 동작입니다. 아이콘을 켜려면:

manager.AddMain<HomeView, HomeViewModel>(ViewIds.Home, "홈", "Home");
manager.AddMain<ToolView, ToolViewModel>(ViewIds.Tool, "도구", "Control");
manager.AddMain<SettingsView, SettingsViewModel>(ViewIds.Settings, "설정", "Settings");

확인

  1. 하단 탭 바가 잘리지 않고 라벨(과 아이콘)이 온전히 보이는지
  2. 설정 화면처럼 모듈이 떠 있을 때 배경이 해치가 아닌 단색인지
  3. 컨텐츠 좌측이 상단 로고와 세로로 맞는지
  4. 화면 배율을 1.6까지 올렸을 때 하단 탭 바가 같이 커지고 잘리지 않는지