225 lines
16 KiB
XML
225 lines
16 KiB
XML
<DockPanel xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
Margin="14">
|
|
|
|
<StackPanel DockPanel.Dock="Bottom" Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,12,0,0">
|
|
<Button x:Name="btnOk" Content="확인" FontWeight="Bold" MinWidth="80" Background="#E3F2FD" BorderBrush="#64B5F6"/>
|
|
<Button x:Name="btnCancel" Content="취소" MinWidth="80"/>
|
|
</StackPanel>
|
|
|
|
<TabControl x:Name="tabs" Padding="0">
|
|
|
|
<!-- ═════════════ 1. 일반 ═════════════ -->
|
|
<TabItem Header=" 일반 ">
|
|
<Border Background="White" Padding="14,10">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="210"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="44"/>
|
|
<RowDefinition Height="44"/>
|
|
<RowDefinition Height="44"/>
|
|
<RowDefinition Height="44"/>
|
|
<RowDefinition Height="44"/>
|
|
<RowDefinition Height="44"/>
|
|
<RowDefinition Height="44"/>
|
|
<RowDefinition Height="44"/>
|
|
<RowDefinition Height="Auto"/>
|
|
</Grid.RowDefinitions>
|
|
|
|
<!-- 컴퓨터 시작시 기동 -->
|
|
<TextBlock Grid.Row="0" Text="컴퓨터 시작시 기동" VerticalAlignment="Center" FontWeight="SemiBold"/>
|
|
<DockPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center" LastChildFill="True">
|
|
<CheckBox x:Name="chkStartup" DockPanel.Dock="Right" Style="{DynamicResource ToggleSwitch}"
|
|
ToolTip="Windows에 로그인하면 트레이로 자동 실행합니다. (작업 스케줄러에 등록)"/>
|
|
<TextBlock Text="로그인 시 트레이로 자동 실행" Foreground="#78909C" VerticalAlignment="Center"/>
|
|
</DockPanel>
|
|
|
|
<!-- 단축키 -->
|
|
<TextBlock Grid.Row="1" Text="단축키" VerticalAlignment="Center" FontWeight="SemiBold"/>
|
|
<DockPanel Grid.Row="1" Grid.Column="1" VerticalAlignment="Center" LastChildFill="False">
|
|
<CheckBox x:Name="chkHotkey" DockPanel.Dock="Right" Style="{DynamicResource ToggleSwitch}"/>
|
|
<TextBlock DockPanel.Dock="Right" Text="Enable" VerticalAlignment="Center" Margin="16,0,8,0"/>
|
|
<TextBox x:Name="txtHotkey" DockPanel.Dock="Left" Width="190" Height="28" IsReadOnly="True" IsReadOnlyCaretVisible="False"
|
|
VerticalContentAlignment="Center" HorizontalContentAlignment="Center"
|
|
FontWeight="Bold" Cursor="Hand" Background="#FAFAFA"
|
|
ToolTip="여기를 클릭한 뒤 원하는 키 조합을 직접 누르세요. (Ctrl / Alt / Win 중 하나 이상 포함)"/>
|
|
</DockPanel>
|
|
|
|
<!-- 서비스 시작시 로그보기 -->
|
|
<TextBlock Grid.Row="2" Text="서비스 시작시 로그보기" VerticalAlignment="Center" FontWeight="SemiBold"/>
|
|
<DockPanel Grid.Row="2" Grid.Column="1" VerticalAlignment="Center" LastChildFill="True">
|
|
<CheckBox x:Name="chkOpLog" DockPanel.Dock="Right" Style="{DynamicResource ToggleSwitch}"/>
|
|
<TextBlock Text="Start / Stop 등 작업 로그를 초기화면 하단에 표시" Foreground="#78909C" VerticalAlignment="Center"/>
|
|
</DockPanel>
|
|
|
|
<!-- 로그창 띄우기 -->
|
|
<TextBlock Grid.Row="3" Text="로그창 띄우기" VerticalAlignment="Center" FontWeight="SemiBold"/>
|
|
<ComboBox x:Name="cmbLogMode" Grid.Row="3" Grid.Column="1" Width="260" Height="28" HorizontalAlignment="Left" VerticalContentAlignment="Center">
|
|
<ComboBoxItem Content="1. 개별 창"/>
|
|
<ComboBoxItem Content="2. 하나의 창에 탭으로"/>
|
|
<ComboBoxItem Content="3. 창을 좌우로 나누어 비교"/>
|
|
</ComboBox>
|
|
|
|
<!-- Esc -->
|
|
<TextBlock Grid.Row="4" Text="Esc" VerticalAlignment="Center" FontWeight="SemiBold"/>
|
|
<ComboBox x:Name="cmbEsc" Grid.Row="4" Grid.Column="1" Width="260" Height="28" HorizontalAlignment="Left" VerticalContentAlignment="Center">
|
|
<ComboBoxItem Content="트레이로 (백그라운드)"/>
|
|
<ComboBoxItem Content="완전 종료"/>
|
|
</ComboBox>
|
|
|
|
<!-- Windows 종료키 -->
|
|
<TextBlock Grid.Row="5" Text="Windows 종료키" VerticalAlignment="Center" FontWeight="SemiBold"/>
|
|
<DockPanel Grid.Row="5" Grid.Column="1" VerticalAlignment="Center" LastChildFill="True">
|
|
<CheckBox x:Name="chkShutdownButtons" DockPanel.Dock="Right" Style="{DynamicResource ToggleSwitch}"/>
|
|
<TextBlock Text="초기화면에 Windows 강제종료 / 재시작 버튼 표시" Foreground="#78909C" VerticalAlignment="Center"/>
|
|
</DockPanel>
|
|
|
|
<!-- 숫자 확인: 내 PC -->
|
|
<TextBlock Grid.Row="6" Text="숫자 확인 (내 PC)" VerticalAlignment="Center" FontWeight="SemiBold"/>
|
|
<DockPanel Grid.Row="6" Grid.Column="1" VerticalAlignment="Center" LastChildFill="True">
|
|
<CheckBox x:Name="chkConfirmLocal" DockPanel.Dock="Right" Style="{DynamicResource ToggleSwitch}"/>
|
|
<TextBlock Text="내 PC 서비스 Start / Stop 전에 숫자 6자리 입력" Foreground="#78909C" VerticalAlignment="Center"/>
|
|
</DockPanel>
|
|
|
|
<!-- 숫자 확인: 원격 -->
|
|
<TextBlock Grid.Row="7" Text="숫자 확인 (원격)" VerticalAlignment="Center" FontWeight="SemiBold"/>
|
|
<DockPanel Grid.Row="7" Grid.Column="1" VerticalAlignment="Center" LastChildFill="True">
|
|
<CheckBox x:Name="chkConfirmRemote" DockPanel.Dock="Right" Style="{DynamicResource ToggleSwitch}"/>
|
|
<TextBlock Text="원격 PC 서비스 Start / Stop 전에 숫자 6자리 입력" Foreground="#78909C" VerticalAlignment="Center"/>
|
|
</DockPanel>
|
|
|
|
<TextBlock Grid.Row="8" Grid.ColumnSpan="2" x:Name="txtDataPath" Foreground="#90A4AE" Margin="0,14,0,0" TextWrapping="Wrap"/>
|
|
</Grid>
|
|
</Border>
|
|
</TabItem>
|
|
|
|
<!-- ═════════════ 2. 원격 접속 허용 (대상 역할) ═════════════ -->
|
|
<TabItem Header=" 원격 접속 허용 ">
|
|
<Border Background="White" Padding="14,10">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="210"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="44"/>
|
|
<RowDefinition Height="44"/>
|
|
<RowDefinition Height="44"/>
|
|
<RowDefinition Height="44"/>
|
|
<RowDefinition Height="44"/>
|
|
<RowDefinition Height="Auto"/>
|
|
</Grid.RowDefinitions>
|
|
|
|
<TextBlock Grid.Row="0" Text="원격 접속 허용" VerticalAlignment="Center" FontWeight="SemiBold"/>
|
|
<DockPanel Grid.Row="0" Grid.Column="1" VerticalAlignment="Center" LastChildFill="True">
|
|
<CheckBox x:Name="chkServer" DockPanel.Dock="Right" Style="{DynamicResource ToggleSwitch}"/>
|
|
<TextBlock Text="다른 PC가 이 PC의 등록된 서비스를 보고 Start / Stop 할 수 있게 함" Foreground="#78909C" VerticalAlignment="Center" TextWrapping="Wrap"/>
|
|
</DockPanel>
|
|
|
|
<TextBlock Grid.Row="1" Text="통신 방식" VerticalAlignment="Center" FontWeight="SemiBold"/>
|
|
<ComboBox x:Name="cmbServerMode" Grid.Row="1" Grid.Column="1" Width="260" Height="28" HorizontalAlignment="Left" VerticalContentAlignment="Center">
|
|
<ComboBoxItem Content="SSH (프로그램 내장)"/>
|
|
<ComboBoxItem Content="지정 포트 (TLS 암호화)"/>
|
|
</ComboBox>
|
|
|
|
<TextBlock Grid.Row="2" Text="포트" VerticalAlignment="Center" FontWeight="SemiBold"/>
|
|
<StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal" VerticalAlignment="Center">
|
|
<TextBox x:Name="txtServerPort" Width="100" Height="28" VerticalContentAlignment="Center" MaxLength="5"/>
|
|
<TextBlock x:Name="txtServerPortHint" Foreground="#78909C" VerticalAlignment="Center" Margin="10,0,0,0"/>
|
|
</StackPanel>
|
|
|
|
<TextBlock Grid.Row="3" Text="접속 비밀번호" VerticalAlignment="Center" FontWeight="SemiBold"/>
|
|
<StackPanel Grid.Row="3" Grid.Column="1" Orientation="Horizontal" VerticalAlignment="Center">
|
|
<PasswordBox x:Name="pwdServer" Width="180" Height="28" VerticalContentAlignment="Center"/>
|
|
<TextBlock Text="확인" VerticalAlignment="Center" Margin="10,0,6,0"/>
|
|
<PasswordBox x:Name="pwdServer2" Width="180" Height="28" VerticalContentAlignment="Center"/>
|
|
</StackPanel>
|
|
|
|
<TextBlock Grid.Row="4" Grid.Column="1" x:Name="txtPwState" VerticalAlignment="Center" Foreground="#78909C"/>
|
|
|
|
<Border Grid.Row="5" Grid.ColumnSpan="2" Background="#F1F8FB" BorderBrush="#B0BEC5" BorderThickness="1" Padding="10" Margin="0,10,0,0">
|
|
<TextBlock x:Name="txtServerInfo" TextWrapping="Wrap" Foreground="#37474F" LineHeight="20"/>
|
|
</Border>
|
|
</Grid>
|
|
</Border>
|
|
</TabItem>
|
|
|
|
<!-- ═════════════ 3. 관리 대상 PC (관리 역할) ═════════════ -->
|
|
<TabItem Header=" 관리 대상 PC ">
|
|
<Border Background="White" Padding="14,10">
|
|
<DockPanel>
|
|
<DockPanel DockPanel.Dock="Top" Height="44" LastChildFill="True">
|
|
<TextBlock Text="다른 PC 관리" Width="210" VerticalAlignment="Center" FontWeight="SemiBold"/>
|
|
<CheckBox x:Name="chkManage" DockPanel.Dock="Right" Style="{DynamicResource ToggleSwitch}"/>
|
|
<TextBlock Text="아래 PC에 접속해 등록된 서비스를 초기화면에 표시" Foreground="#78909C" VerticalAlignment="Center"/>
|
|
</DockPanel>
|
|
|
|
<!-- 입력 -->
|
|
<Border DockPanel.Dock="Bottom" Background="#FAFAFA" BorderBrush="#CFD8DC" BorderThickness="1" Padding="10" Margin="0,8,0,0">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="90"/>
|
|
<ColumnDefinition Width="*"/>
|
|
<ColumnDefinition Width="80"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="36"/>
|
|
<RowDefinition Height="36"/>
|
|
<RowDefinition Height="36"/>
|
|
<RowDefinition Height="Auto"/>
|
|
</Grid.RowDefinitions>
|
|
|
|
<TextBlock Text="대상 IP" VerticalAlignment="Center"/>
|
|
<TextBox x:Name="txtAddr" Grid.Column="1" Height="28" VerticalContentAlignment="Center" Margin="0,0,12,0"
|
|
ToolTip="예: 192.168.0.10 (컴퓨터 이름도 가능)"/>
|
|
<TextBlock Grid.Column="2" Text="hostname" VerticalAlignment="Center"/>
|
|
<TextBox x:Name="txtHostname" Grid.Column="3" Height="28" VerticalContentAlignment="Center" IsReadOnly="True"
|
|
Background="#ECEFF1" ToolTip="연결 테스트 또는 접속할 때 자동으로 채워집니다."/>
|
|
|
|
<TextBlock Grid.Row="1" Text="통신 방식" VerticalAlignment="Center"/>
|
|
<ComboBox x:Name="cmbMode" Grid.Row="1" Grid.Column="1" Height="28" VerticalContentAlignment="Center" Margin="0,0,12,0">
|
|
<ComboBoxItem Content="SSH (프로그램 내장)"/>
|
|
<ComboBoxItem Content="지정 포트 (TLS 암호화)"/>
|
|
</ComboBox>
|
|
<TextBlock Grid.Row="1" Grid.Column="2" Text="포트" VerticalAlignment="Center"/>
|
|
<TextBox x:Name="txtPort" Grid.Row="1" Grid.Column="3" Width="100" HorizontalAlignment="Left" Height="28" VerticalContentAlignment="Center" MaxLength="5"/>
|
|
|
|
<TextBlock Grid.Row="2" Text="비밀번호" VerticalAlignment="Center"/>
|
|
<PasswordBox x:Name="pwdTarget" Grid.Row="2" Grid.Column="1" Height="28" VerticalContentAlignment="Center" Margin="0,0,12,0"
|
|
ToolTip="대상 PC의 [원격 접속 허용] 접속 비밀번호"/>
|
|
<TextBlock Grid.Row="2" Grid.Column="2" Grid.ColumnSpan="2" x:Name="txtPwTarget" VerticalAlignment="Center" Foreground="#78909C"/>
|
|
|
|
<DockPanel Grid.Row="3" Grid.ColumnSpan="4" Margin="0,6,0,0">
|
|
<StackPanel DockPanel.Dock="Right" Orientation="Horizontal">
|
|
<Button x:Name="btnTest" Content="연결 테스트"/>
|
|
<Button x:Name="btnNew" Content="새로 입력"/>
|
|
<Button x:Name="btnAddTarget" Content="추가" FontWeight="Bold"/>
|
|
<Button x:Name="btnUpdateTarget" Content="수정"/>
|
|
<Button x:Name="btnDeleteTarget" Content="삭제"/>
|
|
</StackPanel>
|
|
<TextBlock x:Name="txtTest" VerticalAlignment="Center" TextWrapping="Wrap" Margin="0,0,10,0"/>
|
|
</DockPanel>
|
|
</Grid>
|
|
</Border>
|
|
|
|
<!-- 목록 -->
|
|
<ListBox x:Name="lstTargets" BorderBrush="#B0BEC5" MinHeight="120">
|
|
<ListBox.ItemTemplate>
|
|
<DataTemplate>
|
|
<DockPanel Margin="4,3">
|
|
<TextBlock DockPanel.Dock="Right" Text="{Binding ModeText}" Foreground="#607D8B"/>
|
|
<TextBlock Text="{Binding Label}" FontWeight="SemiBold"/>
|
|
</DockPanel>
|
|
</DataTemplate>
|
|
</ListBox.ItemTemplate>
|
|
</ListBox>
|
|
</DockPanel>
|
|
</Border>
|
|
</TabItem>
|
|
</TabControl>
|
|
</DockPanel>
|