4차 C-2: 아래쪽 정보를 창 아래 한 줄로
같은 뜻의 숫자가 세 군데에 있었다. 왼쪽은 어디, 가운데는 얼마나 남았나, 오른쪽은 무슨 파일인가. 패널 밖으로 나오면서 두 패널 코드 영역 높이가 저절로 같아진다.
This commit is contained in:
parent
9f0802e58f
commit
cbf9e64539
@ -320,4 +320,44 @@ Git 모드도 같이 정리됐다 - `BASE / 9c9e0bb · StartWeld.cs`, `LOCAL / m
|
||||
**걸린 것 하나** - `SplitLead` 의 튜플 요소 이름을 `Rest` 로 뒀다가 CS8126 이 났다.
|
||||
`Rest` 는 `ValueTuple` 이 제 필드 이름으로 쓰는 예약어다. `Tail` 로 바꿨다.
|
||||
|
||||
검사 571건 통과 · 빌드 경고 0 · 오류 0.
|
||||
---
|
||||
|
||||
## C-2. 아래쪽 정보가 세 군데로 흩어져 있던 것 — **완료** (2026-09-10)
|
||||
|
||||
**무엇이 문제였나** - 같은 성격의 정보가 세 자리에 나뉘어 있었다.
|
||||
|
||||
```
|
||||
BASE 바닥 Diff 요약 / 총 43 라인 · 차이 10 라인
|
||||
MERGED 바닥① 1행 1열 | 차이 - / 5 | UTF-8 · CRLF · C#
|
||||
MERGED 바닥② 편집 0건 · 되돌리기 0건 · 남은 차이 10 라인 | 코드 검사 이상 없음
|
||||
```
|
||||
|
||||
<b>같은 뜻의 숫자가 세 벌이었다</b> - `차이 10 라인` · `남은 차이 10 라인` · `차이 - / 5`.
|
||||
어느 것을 봐야 할지 헷갈리고, 패널마다 54px 를 먹었다.
|
||||
|
||||
**패널 안이 아니라 창 아래 한 줄로 옮겼다.** 자리 규칙을 정했다.
|
||||
|
||||
| 자리 | 무엇 |
|
||||
|---|---|
|
||||
| 왼쪽 | 지금 어디에 있는지 — `1행 1열` · `차이 3 / 5` |
|
||||
| 가운데 | 얼마나 남았는지 — `총 34줄 · 남은 차이 5줄` (고친 것이 있으면 편집·되돌리기가 붙는다) |
|
||||
| 오른쪽 | 이 파일이 무엇인지 — `UTF-8 · CRLF · C#` · 비교 규칙 · 코드 검사 |
|
||||
|
||||
**곁들여 얻은 것** - 상태바가 패널 밖으로 나오면서 <b>두 패널의 코드 영역 높이가 저절로 같아진다.</b>
|
||||
전에는 BASE 와 MERGED 의 바닥 높이를 손으로 맞춰 두어야 했다(`PaneFooterHeight` 상수가 그 흔적이다).
|
||||
3-Way 에서도 네 칸이 같은 자리에 선다.
|
||||
|
||||
**숫자를 하나씩만 남겼다.** `총 N줄` 은 파일 크기, `남은 차이 N줄` 은 남은 일이다.
|
||||
편집·되돌리기 건수는 **0건일 때는 아예 적지 않는다** - 늘 `0건 0건` 이 붙어 있으면 눈이 그냥 지나친다.
|
||||
|
||||
**화면에서 확인한 것**
|
||||
|
||||
| 확인 | 결과 |
|
||||
|---|---|
|
||||
| 2-Way | `1행 1열 │ 차이 -/2 │ 총 8줄 · 남은 차이 2줄 … UTF-8 · CRLF · C/C++ │ 코드 검사 이상 없음` |
|
||||
| 3-Way | 같은 한 줄, `총 34줄 · 남은 차이 5줄` · `코드 검사 확인 필요 1건` |
|
||||
| 두 패널 코드 높이 | 같다. 3-Way 네 칸도 같은 자리에 선다 |
|
||||
| 같은 숫자 두 번 | 없다 |
|
||||
|
||||
검사 571건 통과 · 빌드 경고 0 · 오류 0.
|
||||
@ -8,6 +8,7 @@
|
||||
|
||||
| 날짜 | 항목 | 커밋 |
|
||||
|---|---|---|
|
||||
| 2026-09-10 | **4차 C-2** — 아래쪽 세 군데 상태 정보를 창 아래 한 줄로. 두 패널 코드 높이가 저절로 맞는다 | 아래 |
|
||||
| 2026-09-10 | **4차 C-1 다시** — 머리글을 파일 이름만으로 줄인 것이 잘못이었다. 두 경로에서 다른 부분만 남기게 고침 | 아래 |
|
||||
| 2026-09-10 | **4차 C-1** — 파일 비교에서 같은 경로가 나오던 세 자리를 하나로. 코드가 두 줄 더 보인다 | 아래 |
|
||||
| 2026-09-10 | **4차 B-3** — 폴더 비교 목록을 파일 비교 화면에서 이전/다음으로 딛는다 (Ctrl+PageUp/PageDown) | 아래 |
|
||||
@ -33,6 +34,7 @@
|
||||
|
||||
| 날짜 | 문서 | 내용 |
|
||||
|---|---|---|
|
||||
| 2026-09-10 | **4차 C-2** — 아래쪽 세 군데 상태 정보를 창 아래 한 줄로. 두 패널 코드 높이가 저절로 맞는다 | 아래 |
|
||||
| 2026-09-10 | **4차 C-1 다시** — 머리글을 파일 이름만으로 줄인 것이 잘못이었다. 두 경로에서 다른 부분만 남기게 고침 | 아래 |
|
||||
| 2026-09-10 | **4차 C-1** — 파일 비교에서 같은 경로가 나오던 세 자리를 하나로. 코드가 두 줄 더 보인다 | 아래 |
|
||||
| 2026-09-10 | **4차 B-3** — 폴더 비교 목록을 파일 비교 화면에서 이전/다음으로 딛는다 (Ctrl+PageUp/PageDown) | 아래 |
|
||||
|
||||
@ -39,7 +39,7 @@
|
||||
| 상태 | 항목 |
|
||||
|---|---|
|
||||
| **완료** | C-1 같은 경로가 세 군데 나온다 |
|
||||
| 대기 | C-2 아래쪽 정보가 세 군데로 흩어져 있다 |
|
||||
| **완료** | C-2 아래쪽 정보가 세 군데로 흩어져 있다 |
|
||||
| 대기 | C-3 Git 탭의 원격 블록을 접는다 |
|
||||
| 대기 | C-4 색 구분 범례를 이동 도구로 |
|
||||
| 대기 | C-5 ACTIONS 칸을 자주 쓰는 것과 한 번 정하는 것으로 나눈다 |
|
||||
|
||||
@ -2534,9 +2534,15 @@ namespace MergeHub.ViewModels
|
||||
var total = Lines.Count;
|
||||
var diff = Lines.Count(l => l.IsDifferent);
|
||||
|
||||
DiffSummary = total == 0 ? "-" : $"총 {total} 라인 · 차이 {diff} 라인";
|
||||
// 같은 숫자를 두 번 적지 않는다(4차 C-2). 예전에는 여기서 "차이 {diff} 라인" 을 적고
|
||||
// 바로 아래 줄에서 "남은 차이 {diff} 라인" 을 또 적었다 - 어느 쪽을 봐야 하는지 헷갈렸다.
|
||||
// 파일 크기(총 N줄)와 남은 일(차이 N줄)은 다른 것이므로 하나씩만 남긴다.
|
||||
DiffSummary = total == 0 ? "-" : $"총 {total}줄";
|
||||
DiffVersion++;
|
||||
EditSummary = $"편집 {_undo.Count}건 · 되돌리기 {_redo.Count}건 · 남은 차이 {diff} 라인";
|
||||
|
||||
EditSummary = _undo.Count == 0 && _redo.Count == 0
|
||||
? $"남은 차이 {diff}줄"
|
||||
: $"남은 차이 {diff}줄 · 편집 {_undo.Count}건 · 되돌리기 {_redo.Count}건";
|
||||
|
||||
UpdateLegendCounts();
|
||||
RefreshProblems();
|
||||
|
||||
@ -339,6 +339,8 @@
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
<!-- 상태바. 패널 안이 아니라 창 아래 한 줄로 둔다(4차 C-2). -->
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- ===== 상단 상태 바 ===== -->
|
||||
@ -999,15 +1001,7 @@
|
||||
Value="{Binding SourceScrollValue, Mode=TwoWay, RelativeSource={RelativeSource AncestorType=UserControl}}"
|
||||
Visibility="{Binding SourceBarVisibility, RelativeSource={RelativeSource AncestorType=UserControl}}"/>
|
||||
|
||||
<Border Grid.Row="2" Padding="8,5" BorderThickness="0,1,0,0"
|
||||
Height="{StaticResource PaneFooterHeight}"
|
||||
Visibility="{Binding IsTwoWay, Converter={StaticResource BoolToVis}}"
|
||||
BorderBrush="{DynamicResource Ubisam.Brush.Input.Border}">
|
||||
<StackPanel VerticalAlignment="Center">
|
||||
<TextBlock Text="Diff 요약" Style="{StaticResource Muted}" FontSize="11"/>
|
||||
<TextBlock Text="{Binding DiffSummary}" FontSize="12"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
<!-- Diff 요약도 아래 한 줄로 갔다(4차 C-2). 같은 숫자가 세 군데 있었다. -->
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
@ -1184,103 +1178,7 @@
|
||||
LineRequested="MiniMap_LineRequested"/>
|
||||
</Grid>
|
||||
|
||||
<Border Grid.Row="2" Padding="8,5" BorderThickness="0,1,0,0"
|
||||
Height="{StaticResource PaneFooterHeight}"
|
||||
BorderBrush="{DynamicResource Ubisam.Brush.Input.Border}">
|
||||
<StackPanel VerticalAlignment="Center">
|
||||
<!--
|
||||
상태바. 지금 어디에 있고(행·열, 몇 번째 차이),
|
||||
저장하면 어떤 형식으로 나가는지(인코딩·줄바꿈)를 한 줄에 모아 둔다.
|
||||
-->
|
||||
<StackPanel Orientation="Horizontal" Margin="0,0,0,4">
|
||||
<TextBlock Text="{Binding CaretPosition}" Style="{StaticResource Mono}" FontSize="11"/>
|
||||
<Border Width="1" Margin="8,1" Background="{DynamicResource Ubisam.Brush.Input.Border}"/>
|
||||
<TextBlock Text="{Binding DiffPosition}" FontSize="11" FontWeight="Bold"
|
||||
Foreground="{DynamicResource Ubisam.Brush.Accent}"/>
|
||||
<Border Width="1" Margin="8,1" Background="{DynamicResource Ubisam.Brush.Input.Border}"/>
|
||||
<TextBlock Text="{Binding FileEncoding}" Style="{StaticResource Muted}" FontSize="11"/>
|
||||
<TextBlock Text="·" Style="{StaticResource Muted}" FontSize="11" Margin="5,0"/>
|
||||
<TextBlock Text="{Binding FileNewLine}" Style="{StaticResource Muted}" FontSize="11"/>
|
||||
<TextBlock Text="·" Style="{StaticResource Muted}" FontSize="11" Margin="5,0"/>
|
||||
<TextBlock Text="{Binding LanguageName}" Style="{StaticResource Muted}" FontSize="11"
|
||||
ToolTip="확장자로 고른 언어입니다. 색칠과 코드 검사가 이 값을 따릅니다"/>
|
||||
|
||||
<Border Width="1" Margin="8,1" Background="{DynamicResource Ubisam.Brush.Input.Border}"
|
||||
Visibility="{Binding RulesSummary, Converter={StaticResource TextToVis}}"/>
|
||||
<TextBlock Text="{Binding RulesSummary}" FontSize="11"
|
||||
Foreground="{DynamicResource Ubisam.Brush.Muted}"
|
||||
Visibility="{Binding RulesSummary, Converter={StaticResource TextToVis}}"/>
|
||||
</StackPanel>
|
||||
|
||||
<!--
|
||||
편집 상태와 코드 검사를 한 줄에 둔다. BASE 쪽 요약과 높이를 맞춰야
|
||||
두 패널의 코드 영역이 같은 크기가 되고 나란히 읽힌다.
|
||||
|
||||
검사 결과는 걸린 게 있을 때만 눌러서 목록을 펼친다 - 늘 펼쳐 두면
|
||||
이 칸이 커져 코드가 가린다.
|
||||
-->
|
||||
<StackPanel Orientation="Horizontal" Margin="0,2,0,0">
|
||||
<TextBlock Text="{Binding EditSummary}" FontSize="12"
|
||||
VerticalAlignment="Center"/>
|
||||
|
||||
<Border Width="1" Margin="8,1" Background="{DynamicResource Ubisam.Brush.Input.Border}"/>
|
||||
<TextBlock Text="코드 검사" Style="{StaticResource Muted}" FontSize="11" Margin="0,0,6,0"/>
|
||||
|
||||
<ToggleButton x:Name="ProblemToggle" Padding="6,1" FontSize="11" FontWeight="Bold"
|
||||
MinHeight="22" BorderThickness="0" Background="Transparent"
|
||||
IsEnabled="{Binding HasProblems}"
|
||||
ToolTip="눌러서 확인이 필요한 줄을 봅니다">
|
||||
<ToggleButton.Style>
|
||||
<Style TargetType="ToggleButton">
|
||||
<Setter Property="Foreground" Value="{DynamicResource Ubisam.Brush.Success}"/>
|
||||
<Setter Property="Cursor" Value="Arrow"/>
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding HasProblems}" Value="True">
|
||||
<Setter Property="Foreground" Value="{DynamicResource Ubisam.Brush.Danger}"/>
|
||||
<Setter Property="Cursor" Value="Hand"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</ToggleButton.Style>
|
||||
<TextBlock Text="{Binding ProblemSummary}"/>
|
||||
</ToggleButton>
|
||||
|
||||
<Popup IsOpen="{Binding IsChecked, ElementName=ProblemToggle}"
|
||||
PlacementTarget="{Binding ElementName=ProblemToggle}"
|
||||
Placement="Top" StaysOpen="False" AllowsTransparency="True"
|
||||
HorizontalOffset="-8" VerticalOffset="-4">
|
||||
<Border Background="{DynamicResource Ubisam.Brush.Input.Background}"
|
||||
BorderBrush="{DynamicResource Ubisam.Brush.Danger}"
|
||||
BorderThickness="1" Padding="4" MaxWidth="620" MaxHeight="240"
|
||||
Effect="{DynamicResource Ubisam.Effect.Popup}">
|
||||
<ScrollViewer VerticalScrollBarVisibility="Auto">
|
||||
<ItemsControl ItemsSource="{Binding Problems}">
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Button Command="{Binding DataContext.GoToProblemCommand,
|
||||
RelativeSource={RelativeSource AncestorType=UserControl}}"
|
||||
CommandParameter="{Binding}"
|
||||
HorizontalContentAlignment="Left"
|
||||
Background="Transparent" BorderThickness="0"
|
||||
Padding="6,3" Margin="0"
|
||||
ToolTip="누르면 그 줄로 이동합니다">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock Text="{Binding Where}" FontFamily="Consolas"
|
||||
FontSize="11" FontWeight="Bold" MinWidth="46"
|
||||
Foreground="{DynamicResource Ubisam.Brush.Danger}"/>
|
||||
<TextBlock Text="{Binding Message}" FontSize="11"
|
||||
TextWrapping="Wrap" Margin="6,0,0,0"/>
|
||||
</StackPanel>
|
||||
</Button>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
</ScrollViewer>
|
||||
</Border>
|
||||
</Popup>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
<!-- 상태바는 창 아래 한 줄로 옮겼다(4차 C-2). 두 패널이 같은 높이를 갖게 된다. -->
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
@ -1602,5 +1500,116 @@
|
||||
</DockPanel>
|
||||
</Border>
|
||||
</Grid>
|
||||
|
||||
<!--
|
||||
④ 상태바 — 창 아래 한 줄.
|
||||
|
||||
<b>왜 옮겼나</b> - 예전에는 세 군데에 흩어져 있었다.
|
||||
BASE 바닥의 "총 43 라인 · 차이 10 라인", MERGED 바닥 첫 줄의 "1행 1열 | 차이 -/5 | UTF-8",
|
||||
그 아래 줄의 "편집 0건 · 되돌리기 0건 · 남은 차이 10 라인". 같은 뜻의 숫자가 세 벌이라
|
||||
어느 것을 봐야 할지 헷갈렸고, 패널마다 54px 를 먹었다.
|
||||
|
||||
<b>자리 규칙</b> - 왼쪽은 지금 어디에 있는지, 가운데는 얼마나 남았는지, 오른쪽은 이 파일이 무엇인지.
|
||||
패널 밖으로 나오면서 두 패널의 코드 영역 높이가 저절로 같아진다.
|
||||
-->
|
||||
<Border Grid.Row="3" Padding="8,4" BorderThickness="1,1,1,1" Margin="0,2,0,0"
|
||||
Background="{DynamicResource Ubisam.Brush.Sidebar.Background}"
|
||||
BorderBrush="{DynamicResource Ubisam.Brush.Input.Border}">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<!-- 왼쪽: 지금 어디 -->
|
||||
<StackPanel Grid.Column="0" Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<TextBlock Text="{Binding CaretPosition}" Style="{StaticResource Mono}" FontSize="11"/>
|
||||
<Border Width="1" Margin="10,1" Background="{DynamicResource Ubisam.Brush.Input.Border}"/>
|
||||
<TextBlock Text="{Binding DiffPosition}" FontSize="11" FontWeight="Bold"
|
||||
Foreground="{DynamicResource Ubisam.Brush.Accent}"/>
|
||||
</StackPanel>
|
||||
|
||||
<!-- 가운데: 얼마나 남았나 -->
|
||||
<StackPanel Grid.Column="1" Orientation="Horizontal" VerticalAlignment="Center"
|
||||
Margin="14,0,14,0">
|
||||
<TextBlock Text="{Binding DiffSummary}" FontSize="12" VerticalAlignment="Center"/>
|
||||
<TextBlock Text="·" Style="{StaticResource Muted}" FontSize="11" Margin="6,0"
|
||||
Visibility="{Binding EditSummary, Converter={StaticResource TextToVis}}"/>
|
||||
<TextBlock Text="{Binding EditSummary}" FontSize="12" VerticalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
|
||||
<!-- 오른쪽: 이 파일이 무엇인가 -->
|
||||
<StackPanel Grid.Column="2" Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<TextBlock Text="{Binding FileEncoding}" Style="{StaticResource Muted}" FontSize="11"/>
|
||||
<TextBlock Text="·" Style="{StaticResource Muted}" FontSize="11" Margin="5,0"/>
|
||||
<TextBlock Text="{Binding FileNewLine}" Style="{StaticResource Muted}" FontSize="11"/>
|
||||
<TextBlock Text="·" Style="{StaticResource Muted}" FontSize="11" Margin="5,0"/>
|
||||
<TextBlock Text="{Binding LanguageName}" Style="{StaticResource Muted}" FontSize="11"
|
||||
ToolTip="확장자로 고른 언어입니다. 색칠과 코드 검사가 이 값을 따릅니다"/>
|
||||
|
||||
<Border Width="1" Margin="10,1" Background="{DynamicResource Ubisam.Brush.Input.Border}"
|
||||
Visibility="{Binding RulesSummary, Converter={StaticResource TextToVis}}"/>
|
||||
<TextBlock Text="{Binding RulesSummary}" FontSize="11"
|
||||
Foreground="{DynamicResource Ubisam.Brush.Muted}"
|
||||
Visibility="{Binding RulesSummary, Converter={StaticResource TextToVis}}"/>
|
||||
|
||||
<Border Width="1" Margin="10,1" Background="{DynamicResource Ubisam.Brush.Input.Border}"/>
|
||||
<TextBlock Text="코드 검사" Style="{StaticResource Muted}" FontSize="11" Margin="0,0,6,0"/>
|
||||
<ToggleButton x:Name="ProblemToggle" Padding="6,1" FontSize="11" FontWeight="Bold"
|
||||
MinHeight="22" BorderThickness="0" Background="Transparent"
|
||||
IsEnabled="{Binding HasProblems}"
|
||||
ToolTip="눌러서 확인이 필요한 줄을 봅니다">
|
||||
<ToggleButton.Style>
|
||||
<Style TargetType="ToggleButton">
|
||||
<Setter Property="Foreground" Value="{DynamicResource Ubisam.Brush.Success}"/>
|
||||
<Setter Property="Cursor" Value="Arrow"/>
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding HasProblems}" Value="True">
|
||||
<Setter Property="Foreground" Value="{DynamicResource Ubisam.Brush.Danger}"/>
|
||||
<Setter Property="Cursor" Value="Hand"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</ToggleButton.Style>
|
||||
<TextBlock Text="{Binding ProblemSummary}"/>
|
||||
</ToggleButton>
|
||||
|
||||
<Popup IsOpen="{Binding IsChecked, ElementName=ProblemToggle}"
|
||||
PlacementTarget="{Binding ElementName=ProblemToggle}"
|
||||
Placement="Top" StaysOpen="False" AllowsTransparency="True"
|
||||
HorizontalOffset="-8" VerticalOffset="-4">
|
||||
<Border Background="{DynamicResource Ubisam.Brush.Input.Background}"
|
||||
BorderBrush="{DynamicResource Ubisam.Brush.Danger}"
|
||||
BorderThickness="1" Padding="4" MaxWidth="620" MaxHeight="240"
|
||||
Effect="{DynamicResource Ubisam.Effect.Popup}">
|
||||
<ScrollViewer VerticalScrollBarVisibility="Auto">
|
||||
<ItemsControl ItemsSource="{Binding Problems}">
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Button Command="{Binding DataContext.GoToProblemCommand,
|
||||
RelativeSource={RelativeSource AncestorType=UserControl}}"
|
||||
CommandParameter="{Binding}"
|
||||
HorizontalContentAlignment="Left"
|
||||
Background="Transparent" BorderThickness="0"
|
||||
Padding="6,3" Margin="0"
|
||||
ToolTip="누르면 그 줄로 이동합니다">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock Text="{Binding Where}" FontFamily="Consolas"
|
||||
FontSize="11" FontWeight="Bold" MinWidth="46"
|
||||
Foreground="{DynamicResource Ubisam.Brush.Danger}"/>
|
||||
<TextBlock Text="{Binding Message}" FontSize="11"
|
||||
TextWrapping="Wrap" Margin="6,0,0,0"/>
|
||||
</StackPanel>
|
||||
</Button>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
</ScrollViewer>
|
||||
</Border>
|
||||
</Popup>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user