Made a MainWindow by design, added an icon

This commit is contained in:
InspectorIT
2025-11-30 20:09:39 +03:00
parent 39bd449d6a
commit 63e5c30c88
2 changed files with 122 additions and 67 deletions

View File

@@ -24,5 +24,7 @@
<PrivateAssets Condition="'$(Configuration)' != 'Debug'">All</PrivateAssets> <PrivateAssets Condition="'$(Configuration)' != 'Debug'">All</PrivateAssets>
</PackageReference> </PackageReference>
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.1" /> <PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.1" />
<PackageReference Include="Svg.Controls.Skia.Avalonia" Version="11.3.6" />
<PackageReference Include="Svg.Skia" Version="3.2.1" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@@ -8,87 +8,140 @@
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="KeyKeeper.Views.MainWindow" x:Class="KeyKeeper.Views.MainWindow"
x:DataType="vm:MainWindowViewModel" x:DataType="vm:MainWindowViewModel"
Icon="/Assets/avalonia-logo.ico" Icon="/Assets/icon.ico"
Title="KeyKeeper"> Title="KeyKeeper">
<Design.DataContext> <Design.DataContext>
<vm:MainWindowViewModel/> <vm:MainWindowViewModel/>
</Design.DataContext> </Design.DataContext>
<Grid> <Grid ColumnDefinitions="1.3*, 3*">
<TextBlock Text="{Binding Greeting}"
HorizontalAlignment="Center" <!-- LEFT BLUE PANEL -->
VerticalAlignment="Center"/> <Border Background="#2328C4" Grid.Column="0">
<StackPanel HorizontalAlignment="Left" VerticalAlignment="Top" Margin="20"> <Grid RowDefinitions="Auto,*,Auto" Margin="30">
<Button Content="Настройки"
Command="{Binding OpenSettingsCommand}" <!-- LOGO -->
Width="100" <StackPanel Spacing="10" Margin="0,20,0,40">
Height="30"/> <StackPanel Orientation="Horizontal" Spacing="15">
<!-- ICON (простая замена — можно вставить PNG/SVG) -->
<Path Fill="White"
Data="M12 2L4 6V14L12 18L20 14V6L12 2Z"
Width="40" Height="40"/>
<StackPanel>
<TextBlock Text="KeyKeeper"
FontSize="30"
FontWeight="Bold"
Foreground="White"/>
<TextBlock Text="password manager"
FontSize="16"
Foreground="White"/>
</StackPanel>
</StackPanel>
</StackPanel> </StackPanel>
<Grid Margin="20"> <!-- BUTTONS -->
<Grid.RowDefinitions> <StackPanel Grid.Row="1" Spacing="25" VerticalAlignment="Top">
<RowDefinition Height="Auto"/> <Button Content="New Database"
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0"
Text="KeyKeeper"
FontSize="24"
FontWeight="Bold"
HorizontalAlignment="Center"
Margin="0,0,0,30"/>
<StackPanel Grid.Row="1"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Spacing="15"
Width="300">
<Button Content="Создать новое хранилище"
Click="CreateNewVault_Click"
Height="40"
FontSize="14"/>
<Button Content="Открыть существующее хранилище"
Click="OpenExistingVault_Click"
Height="40"
FontSize="14"/>
<Border Height="1" Margin="0,10" Background="Transparent">
<Grid>
<Rectangle Height="1"
Fill="LightGray"
HorizontalAlignment="Left" HorizontalAlignment="Left"
Width="65"/> Width="200"
<Rectangle Height="1" Height="40"
Fill="LightGray" Background="White"
HorizontalAlignment="Right" Foreground="#2328C4"
Width="65"/> Click="CreateNewVault_Click"/>
<Button Content="Open Database"
HorizontalAlignment="Left"
Width="200"
Height="40"
Background="White"
Foreground="#2328C4"
Click="OpenExistingVault_Click"/>
</StackPanel>
<!-- FOOTER ICONS -->
<StackPanel Grid.Row="2" Orientation="Horizontal" Spacing="25">
<!-- SETTINGS ICON -->
<Path Data="M12 8A4 4 0 1 0 12 16A4 4 0 1 0 12 8Z"
Fill="White" Width="28" Height="28"/>
<!-- INFO ICON -->
<Ellipse Width="28" Height="28" Stroke="White" StrokeThickness="2">
<Ellipse.OpacityMask>
<VisualBrush>
<VisualBrush.Visual>
<TextBlock Text="i"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="20" Foreground="White"/>
</VisualBrush.Visual>
</VisualBrush>
</Ellipse.OpacityMask>
</Ellipse>
</StackPanel>
</Grid> </Grid>
</Border> </Border>
<TextBlock Text="Недавно открытые:"
<!-- RIGHT CONTENT -->
<Grid Grid.Column="1" VerticalAlignment="Center">
<Grid RowDefinitions="Auto,Auto">
<!-- Заголовок строго над таблицей -->
<TextBlock Text="Recent Database"
FontSize="38"
Foreground="#2328C4"
FontWeight="SemiBold" FontWeight="SemiBold"
Margin="0,0,0,5"/> HorizontalAlignment="Center"
Margin="0,40,0,30"/>
<ListBox x:Name="RecentVaultsList" <!-- Таблица из 4 линий -->
Height="120" <Border Grid.Row="1"
Background="Transparent" Width="700"
Height="260"
HorizontalAlignment="Center"
BorderBrush="#D0D0D0"
BorderThickness="1" BorderThickness="1"
BorderBrush="LightGray" CornerRadius="4"
ItemsSource="{Binding RecentFiles}"> Padding="25">
<ListBox.ItemTemplate>
<DataTemplate x:DataType="m:RecentFile">
<TextBlock Text="{Binding DisplayPath}"
Margin="5"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel> <Grid RowDefinitions="Auto,*,*,*,*">
<!-- Текст сверху -->
<TextBlock Text="There is no data yet..."
FontSize="20"
Foreground="#777"
Margin="0,0,0,0"/>
<!-- Линия 1 -->
<Rectangle Grid.Row="1"
Height="1"
Fill="#D0D0D0"
VerticalAlignment="Center"/>
<!-- Линия 2 -->
<Rectangle Grid.Row="2"
Height="1"
Fill="#D0D0D0"
VerticalAlignment="Center"/>
<!-- Линия 3 -->
<Rectangle Grid.Row="3"
Height="1"
Fill="#D0D0D0"
VerticalAlignment="Center"/>
<!-- Линия 4 -->
<Rectangle Grid.Row="4"
Height="1"
Fill="#D0D0D0"
VerticalAlignment="Center"/>
</Grid> </Grid>
</Border>
</Grid>
</Grid>
</Grid> </Grid>
</Window> </Window>