rework to floating window on the top

TODO: keys
This commit is contained in:
Alex Bezdieniezhnykh
2024-11-25 17:53:15 +02:00
parent 9e0bb1e82e
commit 7430b33b8e
2 changed files with 42 additions and 42 deletions
+14 -7
View File
@@ -4,12 +4,19 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d" mc:Ignorable="d"
Title="Azaion Оператор" Height="450" Width="800"> Title="Azaion Оператор" Height="100" Width="200"
<Grid Background="Black"> WindowStyle="None"
<TabControl Name="MainTabControl" ResizeMode="NoResize"
TabStripPlacement="Left" Top="0"
Margin="0, 0, 0, 10" Topmost="True"
Background="Black"> >
</TabControl> <Grid>
<ListView Name="ListView" Background="Black" BorderBrush="Black">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
</Grid> </Grid>
</Window> </Window>
+28 -35
View File
@@ -6,7 +6,6 @@ using System.Windows.Media;
using Azaion.Annotator.Extensions; using Azaion.Annotator.Extensions;
using Azaion.Common.DTO; using Azaion.Common.DTO;
using Azaion.Common.DTO.Config; using Azaion.Common.DTO.Config;
using Azaion.Dataset;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using SharpVectors.Converters; using SharpVectors.Converters;
@@ -34,6 +33,7 @@ public partial class MainSuite
SizeChanged += async (_, _) => await SaveUserSettings(); SizeChanged += async (_, _) => await SaveUserSettings();
LocationChanged += async (_, _) => await SaveUserSettings(); LocationChanged += async (_, _) => await SaveUserSettings();
StateChanged += async (_, _) => await SaveUserSettings(); StateChanged += async (_, _) => await SaveUserSettings();
Left = SystemParameters.WorkArea.Width - Width - 150;
} }
private void OnLoaded(object sender, RoutedEventArgs e) private void OnLoaded(object sender, RoutedEventArgs e)
@@ -45,47 +45,40 @@ public partial class MainSuite
if (!Directory.Exists(_appConfig.DirectoriesConfig.ResultsDirectory)) if (!Directory.Exists(_appConfig.DirectoriesConfig.ResultsDirectory))
Directory.CreateDirectory(_appConfig.DirectoriesConfig.ResultsDirectory); Directory.CreateDirectory(_appConfig.DirectoriesConfig.ResultsDirectory);
Left = _appConfig.WindowConfig.WindowLocation.X;
Top = _appConfig.WindowConfig.WindowLocation.Y;
Width = _appConfig.WindowConfig.WindowSize.Width;
Height = _appConfig.WindowConfig.WindowSize.Height;
if (_appConfig.WindowConfig.FullScreen)
WindowState = WindowState.Maximized;
foreach (var azaionModule in _modules) foreach (var azaionModule in _modules)
{ {
var window = (_sp.GetRequiredService(azaionModule.MainWindowType) as Window)!; var lvItem = new ListViewItem
window.Height = 0;
window.Width = 0;
window.Show();
window.Hide();
_openedWindows.Add(window);
var icon = new SvgViewbox
{ {
SvgSource = azaionModule.SvgIcon, Content = new StackPanel { Children =
Width = 32, {
Height = 32, new SvgViewbox
Margin = new Thickness(0, 0, 10, 0) {
}; SvgSource = azaionModule.SvgIcon,
var text = new TextBlock Width = 32,
{ Height = 32,
Text = azaionModule.Name, Margin = new Thickness(0, 0, 10, 0)
Foreground = Brushes.White, },
HorizontalAlignment = HorizontalAlignment.Center, new TextBlock
Background = Brushes.Black {
}; Text = azaionModule.Name,
var tabItem = new TabItem Foreground = Brushes.White,
{ HorizontalAlignment = HorizontalAlignment.Center,
Header = new StackPanel { Children = { icon, text } }, Background = Brushes.Black
Content = window.Content, }
} },
Background = Brushes.Black, Background = Brushes.Black,
Foreground = Brushes.White, Foreground = Brushes.White,
Cursor = Cursors.Hand, Cursor = Cursors.Hand,
Tag = azaionModule.WindowEnum Tag = azaionModule
}; };
MainTabControl.Items.Add(tabItem); lvItem.MouseUp += (sender, _) =>
{
var module = ((sender as ListViewItem)!.Tag as IAzaionModule)!;
var window = (_sp.GetRequiredService(module.MainWindowType) as Window)!;
_openedWindows.Add(window);
window.Show();
};
ListView.Items.Add(lvItem);
} }
} }