1
0
mirror of https://github.com/Artemis-RGB/Artemis synced 2025-12-12 21:38:38 +00:00

Fixed separators and replaced obsolete filepicker calls

This commit is contained in:
Robert 2023-04-10 12:45:16 +02:00
parent 81a7b0d089
commit a173f3cc61
12 changed files with 83 additions and 81 deletions

View File

@ -1,4 +1,7 @@
using Avalonia.Controls; using System.Collections.Generic;
using System.Linq;
using Avalonia.Controls;
using Avalonia.Platform.Storage;
namespace Artemis.UI.Shared.Services.Builders; namespace Artemis.UI.Shared.Services.Builders;
@ -7,11 +10,12 @@ namespace Artemis.UI.Shared.Services.Builders;
/// </summary> /// </summary>
public class FileDialogFilterBuilder public class FileDialogFilterBuilder
{ {
private readonly FileDialogFilter _filter; private string _name;
private readonly List<string> _extensions = new();
internal FileDialogFilterBuilder() internal FileDialogFilterBuilder()
{ {
_filter = new FileDialogFilter(); _name = "Unknown";
} }
/// <summary> /// <summary>
@ -19,7 +23,7 @@ public class FileDialogFilterBuilder
/// </summary> /// </summary>
public FileDialogFilterBuilder WithName(string name) public FileDialogFilterBuilder WithName(string name)
{ {
_filter.Name = name; _name = name;
return this; return this;
} }
@ -28,12 +32,16 @@ public class FileDialogFilterBuilder
/// </summary> /// </summary>
public FileDialogFilterBuilder WithExtension(string extension) public FileDialogFilterBuilder WithExtension(string extension)
{ {
_filter.Extensions.Add(extension); if (!_extensions.Contains(extension))
_extensions.Add(extension);
return this; return this;
} }
internal FileDialogFilter Build() internal FilePickerFileType Build()
{ {
return _filter; return new FilePickerFileType(_name)
{
Patterns = _extensions.Select(e => "*." + e).ToList()
};
} }
} }

View File

@ -1,7 +1,9 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using Avalonia.Controls; using Avalonia.Controls;
using Avalonia.Platform.Storage;
namespace Artemis.UI.Shared.Services.Builders; namespace Artemis.UI.Shared.Services.Builders;
@ -10,8 +12,9 @@ namespace Artemis.UI.Shared.Services.Builders;
/// </summary> /// </summary>
public class OpenFileDialogBuilder public class OpenFileDialogBuilder
{ {
private readonly OpenFileDialog _openFileDialog;
private readonly Window _parent; private readonly Window _parent;
private readonly FilePickerOpenOptions _options;
private List<FilePickerFileType>? _fileTypeFilters;
/// <summary> /// <summary>
/// Creates a new instance of the <see cref="OpenFileDialogBuilder" /> class. /// Creates a new instance of the <see cref="OpenFileDialogBuilder" /> class.
@ -20,7 +23,7 @@ public class OpenFileDialogBuilder
internal OpenFileDialogBuilder(Window parent) internal OpenFileDialogBuilder(Window parent)
{ {
_parent = parent; _parent = parent;
_openFileDialog = new OpenFileDialog(); _options = new FilePickerOpenOptions();
} }
/// <summary> /// <summary>
@ -28,7 +31,7 @@ public class OpenFileDialogBuilder
/// </summary> /// </summary>
public OpenFileDialogBuilder WithAllowMultiple() public OpenFileDialogBuilder WithAllowMultiple()
{ {
_openFileDialog.AllowMultiple = true; _options.AllowMultiple = true;
return this; return this;
} }
@ -37,7 +40,7 @@ public class OpenFileDialogBuilder
/// </summary> /// </summary>
public OpenFileDialogBuilder WithTitle(string? title) public OpenFileDialogBuilder WithTitle(string? title)
{ {
_openFileDialog.Title = title; _options.Title = title;
return this; return this;
} }
@ -46,16 +49,7 @@ public class OpenFileDialogBuilder
/// </summary> /// </summary>
public OpenFileDialogBuilder WithDirectory(string? directory) public OpenFileDialogBuilder WithDirectory(string? directory)
{ {
_openFileDialog.Directory = directory; _options.SuggestedStartLocation = directory != null ? _parent.StorageProvider.TryGetFolderFromPathAsync(directory).GetAwaiter().GetResult() : null;
return this;
}
/// <summary>
/// Set the initial file name of the dialog
/// </summary>
public OpenFileDialogBuilder WithInitialFileName(string? initialFileName)
{
_openFileDialog.InitialFileName = initialFileName;
return this; return this;
} }
@ -67,8 +61,9 @@ public class OpenFileDialogBuilder
FileDialogFilterBuilder builder = new(); FileDialogFilterBuilder builder = new();
configure(builder); configure(builder);
_openFileDialog.Filters ??= new List<FileDialogFilter>(); _fileTypeFilters ??= new List<FilePickerFileType>();
_openFileDialog.Filters.Add(builder.Build()); _fileTypeFilters.Add(builder.Build());
_options.FileTypeFilter = _fileTypeFilters;
return this; return this;
} }
@ -82,6 +77,7 @@ public class OpenFileDialogBuilder
/// </returns> /// </returns>
public async Task<string[]?> ShowAsync() public async Task<string[]?> ShowAsync()
{ {
return await _openFileDialog.ShowAsync(_parent); IReadOnlyList<IStorageFile> files = await _parent.StorageProvider.OpenFilePickerAsync(_options);
return files.Select(f => f.Path.AbsolutePath).ToArray();
} }
} }

View File

@ -1,5 +1,8 @@
using System.Threading.Tasks; using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Avalonia.Controls; using Avalonia.Controls;
using Avalonia.Platform.Storage;
namespace Artemis.UI.Shared.Services.Builders; namespace Artemis.UI.Shared.Services.Builders;
@ -8,8 +11,8 @@ namespace Artemis.UI.Shared.Services.Builders;
/// </summary> /// </summary>
public class OpenFolderDialogBuilder public class OpenFolderDialogBuilder
{ {
private readonly OpenFolderDialog _openFolderDialog;
private readonly Window _parent; private readonly Window _parent;
private readonly FolderPickerOpenOptions _options;
/// <summary> /// <summary>
/// Creates a new instance of the <see cref="OpenFolderDialogBuilder" /> class. /// Creates a new instance of the <see cref="OpenFolderDialogBuilder" /> class.
@ -18,16 +21,15 @@ public class OpenFolderDialogBuilder
internal OpenFolderDialogBuilder(Window parent) internal OpenFolderDialogBuilder(Window parent)
{ {
_parent = parent; _parent = parent;
_openFolderDialog = new OpenFolderDialog(); _options = new FolderPickerOpenOptions {AllowMultiple = false};
} }
/// <summary> /// <summary>
/// Set the title of the dialog /// Set the title of the dialog
/// </summary> /// </summary>
public OpenFolderDialogBuilder WithTitle(string? title) public OpenFolderDialogBuilder WithTitle(string? title)
{ {
_openFolderDialog.Title = title; _options.Title = title;
return this; return this;
} }
@ -36,7 +38,7 @@ public class OpenFolderDialogBuilder
/// </summary> /// </summary>
public OpenFolderDialogBuilder WithDirectory(string? directory) public OpenFolderDialogBuilder WithDirectory(string? directory)
{ {
_openFolderDialog.Directory = directory; _options.SuggestedStartLocation = directory != null ? _parent.StorageProvider.TryGetFolderFromPathAsync(directory).GetAwaiter().GetResult() : null;
return this; return this;
} }
@ -49,6 +51,7 @@ public class OpenFolderDialogBuilder
/// </returns> /// </returns>
public async Task<string?> ShowAsync() public async Task<string?> ShowAsync()
{ {
return await _openFolderDialog.ShowAsync(_parent); IReadOnlyList<IStorageFolder> folder = await _parent.StorageProvider.OpenFolderPickerAsync(_options);
return folder.FirstOrDefault()?.Path.AbsolutePath;
} }
} }

View File

@ -2,6 +2,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Threading.Tasks; using System.Threading.Tasks;
using Avalonia.Controls; using Avalonia.Controls;
using Avalonia.Platform.Storage;
namespace Artemis.UI.Shared.Services.Builders; namespace Artemis.UI.Shared.Services.Builders;
@ -11,8 +12,9 @@ namespace Artemis.UI.Shared.Services.Builders;
public class SaveFileDialogBuilder public class SaveFileDialogBuilder
{ {
private readonly Window _parent; private readonly Window _parent;
private readonly SaveFileDialog _saveFileDialog; private readonly FilePickerSaveOptions _options;
private List<FilePickerFileType>? _fileTypeFilters;
/// <summary> /// <summary>
/// Creates a new instance of the <see cref="SaveFileDialogBuilder" /> class. /// Creates a new instance of the <see cref="SaveFileDialogBuilder" /> class.
/// </summary> /// </summary>
@ -20,7 +22,7 @@ public class SaveFileDialogBuilder
internal SaveFileDialogBuilder(Window parent) internal SaveFileDialogBuilder(Window parent)
{ {
_parent = parent; _parent = parent;
_saveFileDialog = new SaveFileDialog(); _options = new FilePickerSaveOptions();
} }
/// <summary> /// <summary>
@ -28,7 +30,7 @@ public class SaveFileDialogBuilder
/// </summary> /// </summary>
public SaveFileDialogBuilder WithTitle(string? title) public SaveFileDialogBuilder WithTitle(string? title)
{ {
_saveFileDialog.Title = title; _options.Title = title;
return this; return this;
} }
@ -37,7 +39,7 @@ public class SaveFileDialogBuilder
/// </summary> /// </summary>
public SaveFileDialogBuilder WithDirectory(string? directory) public SaveFileDialogBuilder WithDirectory(string? directory)
{ {
_saveFileDialog.Directory = directory; _options.SuggestedStartLocation = directory != null ? _parent.StorageProvider.TryGetFolderFromPathAsync(directory).GetAwaiter().GetResult() : null;
return this; return this;
} }
@ -46,16 +48,7 @@ public class SaveFileDialogBuilder
/// </summary> /// </summary>
public SaveFileDialogBuilder WithInitialFileName(string? initialFileName) public SaveFileDialogBuilder WithInitialFileName(string? initialFileName)
{ {
_saveFileDialog.InitialFileName = initialFileName; _options.SuggestedFileName = initialFileName;
return this;
}
/// <summary>
/// Set the default extension of the dialog
/// </summary>
public SaveFileDialogBuilder WithDefaultExtension(string? defaultExtension)
{
_saveFileDialog.DefaultExtension = defaultExtension;
return this; return this;
} }
@ -67,8 +60,9 @@ public class SaveFileDialogBuilder
FileDialogFilterBuilder builder = new(); FileDialogFilterBuilder builder = new();
configure(builder); configure(builder);
_saveFileDialog.Filters ??= new List<FileDialogFilter>(); _fileTypeFilters ??= new List<FilePickerFileType>();
_saveFileDialog.Filters.Add(builder.Build()); _fileTypeFilters.Add(builder.Build());
_options.FileTypeChoices = _fileTypeFilters;
return this; return this;
} }
@ -82,6 +76,7 @@ public class SaveFileDialogBuilder
/// </returns> /// </returns>
public async Task<string?> ShowAsync() public async Task<string?> ShowAsync()
{ {
return await _saveFileDialog.ShowAsync(_parent); IStorageFile? path = await _parent.StorageProvider.SaveFilePickerAsync(_options);
return path?.Path.AbsolutePath;
} }
} }

View File

@ -8,7 +8,7 @@
<Border Classes="card" Margin="20"> <Border Classes="card" Margin="20">
<StackPanel> <StackPanel>
<TextBlock>I'm in a panel yo!</TextBlock> <TextBlock>I'm in a panel yo!</TextBlock>
<Separator Classes="card-separator" /> <Border Classes="card-separator" />
<TextBlock>I'm in a panel yo!</TextBlock> <TextBlock>I'm in a panel yo!</TextBlock>
</StackPanel> </StackPanel>
</Border> </Border>
@ -44,7 +44,7 @@
<Setter Property="CornerRadius" Value="{DynamicResource CardCornerRadius}" /> <Setter Property="CornerRadius" Value="{DynamicResource CardCornerRadius}" />
</Style> </Style>
<Style Selector="Separator.card-separator"> <Style Selector="Border.card-separator">
<Setter Property="Background" Value="{DynamicResource ButtonBorderBrush}" /> <Setter Property="Background" Value="{DynamicResource ButtonBorderBrush}" />
<Setter Property="Margin" Value="-12 15" /> <Setter Property="Margin" Value="-12 15" />
<Setter Property="Height" Value="1" /> <Setter Property="Height" Value="1" />

View File

@ -12,16 +12,16 @@
<StackPanel HorizontalAlignment="Stretch" VerticalAlignment="Top"> <StackPanel HorizontalAlignment="Stretch" VerticalAlignment="Top">
<TextBlock FontWeight="Bold">Device name</TextBlock> <TextBlock FontWeight="Bold">Device name</TextBlock>
<TextBlock TextWrapping="Wrap" Text="{Binding Device.RgbDevice.DeviceInfo.DeviceName}" /> <TextBlock TextWrapping="Wrap" Text="{Binding Device.RgbDevice.DeviceInfo.DeviceName}" />
<Separator Classes="card-separator" /> <Border Classes="card-separator" />
<TextBlock FontWeight="Bold">Manufacturer</TextBlock> <TextBlock FontWeight="Bold">Manufacturer</TextBlock>
<TextBlock TextWrapping="Wrap" Text="{Binding Device.RgbDevice.DeviceInfo.Manufacturer}" /> <TextBlock TextWrapping="Wrap" Text="{Binding Device.RgbDevice.DeviceInfo.Manufacturer}" />
<Separator Classes="card-separator" /> <Border Classes="card-separator" />
<TextBlock FontWeight="Bold">Device type</TextBlock> <TextBlock FontWeight="Bold">Device type</TextBlock>
<TextBlock TextWrapping="Wrap" Text="{Binding Device.DeviceType}" /> <TextBlock TextWrapping="Wrap" Text="{Binding Device.DeviceType}" />
<Separator Classes="card-separator" IsVisible="{Binding IsKeyboard}" /> <Border Classes="card-separator" IsVisible="{Binding IsKeyboard}" />
<StackPanel IsVisible="{Binding IsKeyboard}"> <StackPanel IsVisible="{Binding IsKeyboard}">
<TextBlock FontWeight="Bold">Physical layout</TextBlock> <TextBlock FontWeight="Bold">Physical layout</TextBlock>
@ -34,15 +34,15 @@
<StackPanel VerticalAlignment="Top"> <StackPanel VerticalAlignment="Top">
<TextBlock FontWeight="Bold">Size (1px = 1mm)</TextBlock> <TextBlock FontWeight="Bold">Size (1px = 1mm)</TextBlock>
<TextBlock TextWrapping="Wrap" Text="{Binding Device.RgbDevice.Size}" /> <TextBlock TextWrapping="Wrap" Text="{Binding Device.RgbDevice.Size}" />
<Separator Classes="card-separator" /> <Border Classes="card-separator" />
<TextBlock FontWeight="Bold">Location (1px = 1mm)</TextBlock> <TextBlock FontWeight="Bold">Location (1px = 1mm)</TextBlock>
<TextBlock TextWrapping="Wrap" Text="{Binding Device.RgbDevice.Location}" /> <TextBlock TextWrapping="Wrap" Text="{Binding Device.RgbDevice.Location}" />
<Separator Classes="card-separator" /> <Border Classes="card-separator" />
<TextBlock FontWeight="Bold">Rotation (degrees)</TextBlock> <TextBlock FontWeight="Bold">Rotation (degrees)</TextBlock>
<TextBlock TextWrapping="Wrap" Text="{Binding Device.RgbDevice.Rotation.Degrees}" /> <TextBlock TextWrapping="Wrap" Text="{Binding Device.RgbDevice.Rotation.Degrees}" />
<Separator Classes="card-separator" IsVisible="{Binding IsKeyboard}" /> <Border Classes="card-separator" IsVisible="{Binding IsKeyboard}" />
<StackPanel IsVisible="{Binding IsKeyboard}"> <StackPanel IsVisible="{Binding IsKeyboard}">
<TextBlock FontWeight="Bold">Logical layout</TextBlock> <TextBlock FontWeight="Bold">Logical layout</TextBlock>
@ -67,7 +67,7 @@
<TextBlock <TextBlock
TextWrapping="Wrap" TextWrapping="Wrap"
Text="{Binding DefaultLayoutPath}" /> Text="{Binding DefaultLayoutPath}" />
<Separator Classes="card-separator" /> <Border Classes="card-separator" />
<Grid ColumnDefinitions="*,Auto"> <Grid ColumnDefinitions="*,Auto">
<TextBlock FontWeight="Bold">Image file path</TextBlock> <TextBlock FontWeight="Bold">Image file path</TextBlock>

View File

@ -68,7 +68,7 @@
</StackPanel> </StackPanel>
</Grid> </Grid>
<Separator Classes="card-separator" /> <Border Classes="card-separator" />
<Grid RowDefinitions="*,*,*" ColumnDefinitions="Auto,*"> <Grid RowDefinitions="*,*,*" ColumnDefinitions="Auto,*">
<Ellipse Grid.Row="0" <Ellipse Grid.Row="0"
@ -96,7 +96,7 @@
</StackPanel> </StackPanel>
</Grid> </Grid>
<Separator Classes="card-separator" /> <Border Classes="card-separator" />
<Grid RowDefinitions="*,*,*" ColumnDefinitions="Auto,*"> <Grid RowDefinitions="*,*,*" ColumnDefinitions="Auto,*">
<Ellipse Grid.Row="0" <Ellipse Grid.Row="0"
@ -124,7 +124,7 @@
</StackPanel> </StackPanel>
</Grid> </Grid>
<Separator Classes="card-separator" /> <Border Classes="card-separator" />
<Grid RowDefinitions="*,*,*" ColumnDefinitions="Auto,*"> <Grid RowDefinitions="*,*,*" ColumnDefinitions="Auto,*">
<Ellipse Grid.Row="0" <Ellipse Grid.Row="0"

View File

@ -28,7 +28,7 @@
<ToggleSwitch Grid.Row="0" Grid.Column="1" VerticalAlignment="Center" IsChecked="{CompiledBinding UIAutoRun.Value}" MinWidth="0" Margin="0 -10" OnContent="Yes" <ToggleSwitch Grid.Row="0" Grid.Column="1" VerticalAlignment="Center" IsChecked="{CompiledBinding UIAutoRun.Value}" MinWidth="0" Margin="0 -10" OnContent="Yes"
OffContent="No" /> OffContent="No" />
</Grid> </Grid>
<Separator Classes="card-separator" /> <Border Classes="card-separator" />
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto"> <Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
<StackPanel Grid.Column="0"> <StackPanel Grid.Column="0">
@ -39,7 +39,7 @@
OffContent="No" /> OffContent="No" />
</StackPanel> </StackPanel>
</Grid> </Grid>
<Separator Classes="card-separator" /> <Border Classes="card-separator" />
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto"> <Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
<StackPanel Grid.Column="0"> <StackPanel Grid.Column="0">
@ -60,7 +60,7 @@
<TextBlock VerticalAlignment="Center" TextAlignment="Right" Width="30">sec</TextBlock> <TextBlock VerticalAlignment="Center" TextAlignment="Right" Width="30">sec</TextBlock>
</StackPanel> </StackPanel>
</Grid> </Grid>
<Separator Classes="card-separator" /> <Border Classes="card-separator" />
</StackPanel> </StackPanel>
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto"> <Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
@ -76,7 +76,7 @@
<shared:EnumComboBox Width="150" Value="{CompiledBinding CoreLoggingLevel.Value}" /> <shared:EnumComboBox Width="150" Value="{CompiledBinding CoreLoggingLevel.Value}" />
</StackPanel> </StackPanel>
</Grid> </Grid>
<Separator Classes="card-separator" /> <Border Classes="card-separator" />
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto"> <Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
<StackPanel Grid.Column="0" VerticalAlignment="Center"> <StackPanel Grid.Column="0" VerticalAlignment="Center">
@ -114,7 +114,7 @@
<ToggleSwitch IsChecked="{CompiledBinding WebServerEnabled.Value}" OnContent="Yes" OffContent="No" MinWidth="0" Margin="0 -10" /> <ToggleSwitch IsChecked="{CompiledBinding WebServerEnabled.Value}" OnContent="Yes" OffContent="No" MinWidth="0" Margin="0 -10" />
</StackPanel> </StackPanel>
</Grid> </Grid>
<Separator Classes="card-separator" /> <Border Classes="card-separator" />
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto"> <Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
<StackPanel Grid.Column="0"> <StackPanel Grid.Column="0">
@ -156,7 +156,7 @@
<ToggleSwitch IsChecked="{CompiledBinding UICheckForUpdates.Value}" MinWidth="0" OnContent="Yes" OffContent="No" /> <ToggleSwitch IsChecked="{CompiledBinding UICheckForUpdates.Value}" MinWidth="0" OnContent="Yes" OffContent="No" />
</StackPanel> </StackPanel>
</Grid> </Grid>
<Separator Classes="card-separator" /> <Border Classes="card-separator" />
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto"> <Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
<StackPanel Grid.Column="0"> <StackPanel Grid.Column="0">
@ -171,7 +171,7 @@
<ToggleSwitch IsEnabled="{CompiledBinding UICheckForUpdates.Value}" IsChecked="{CompiledBinding UIAutoUpdate.Value}" MinWidth="0" OnContent="Yes" OffContent="No" /> <ToggleSwitch IsEnabled="{CompiledBinding UICheckForUpdates.Value}" IsChecked="{CompiledBinding UIAutoUpdate.Value}" MinWidth="0" OnContent="Yes" OffContent="No" />
</StackPanel> </StackPanel>
</Grid> </Grid>
<Separator Classes="card-separator" /> <Border Classes="card-separator" />
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto"> <Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
<StackPanel Grid.Column="0" VerticalAlignment="Center"> <StackPanel Grid.Column="0" VerticalAlignment="Center">
@ -209,7 +209,7 @@
<ToggleSwitch IsChecked="{CompiledBinding ProfileEditorShowDataModelValues.Value}" MinWidth="0" OnContent="Yes" OffContent="No" /> <ToggleSwitch IsChecked="{CompiledBinding ProfileEditorShowDataModelValues.Value}" MinWidth="0" OnContent="Yes" OffContent="No" />
</StackPanel> </StackPanel>
</Grid> </Grid>
<Separator Classes="card-separator" /> <Border Classes="card-separator" />
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto"> <Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
<StackPanel Grid.Column="0"> <StackPanel Grid.Column="0">
@ -282,7 +282,7 @@
Items="{CompiledBinding GraphicsContexts}" /> Items="{CompiledBinding GraphicsContexts}" />
</StackPanel> </StackPanel>
</Grid> </Grid>
<Separator Classes="card-separator" /> <Border Classes="card-separator" />
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto"> <Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
<StackPanel Grid.Column="0"> <StackPanel Grid.Column="0">
@ -305,7 +305,7 @@
</ComboBox> </ComboBox>
</StackPanel> </StackPanel>
</Grid> </Grid>
<Separator Classes="card-separator" /> <Border Classes="card-separator" />
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto"> <Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
<StackPanel Grid.Column="0"> <StackPanel Grid.Column="0">
@ -353,7 +353,7 @@
<Button Command="{CompiledBinding ShowSetupWizard}" Width="150" Content="Show wizard" /> <Button Command="{CompiledBinding ShowSetupWizard}" Width="150" Content="Show wizard" />
</StackPanel> </StackPanel>
</Grid> </Grid>
<Separator Classes="card-separator" /> <Border Classes="card-separator" />
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto"> <Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
<StackPanel Grid.Column="0" VerticalAlignment="Center"> <StackPanel Grid.Column="0" VerticalAlignment="Center">
@ -368,7 +368,7 @@
<Button Command="{CompiledBinding ShowDebugger}" Width="150" Content="Show debugger" /> <Button Command="{CompiledBinding ShowDebugger}" Width="150" Content="Show debugger" />
</StackPanel> </StackPanel>
</Grid> </Grid>
<Separator Classes="card-separator" /> <Border Classes="card-separator" />
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto"> <Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
<StackPanel Grid.Column="0" VerticalAlignment="Center"> <StackPanel Grid.Column="0" VerticalAlignment="Center">

View File

@ -116,7 +116,7 @@
</Panel> </Panel>
</Grid> </Grid>
<Separator Classes="card-separator" /> <Border Classes="card-separator" />
<Grid Margin="-5 -10" ColumnDefinitions="*,*,*"> <Grid Margin="-5 -10" ColumnDefinitions="*,*,*">
<Grid Grid.Column="0" ColumnDefinitions="*,*" RowDefinitions="*,*,*" Classes="info-container" HorizontalAlignment="Left"> <Grid Grid.Column="0" ColumnDefinitions="*,*" RowDefinitions="*,*,*" Classes="info-container" HorizontalAlignment="Left">
<avalonia1:MaterialIcon Kind="Calendar" Grid.Column="0" Grid.RowSpan="2" Classes="info-icon" /> <avalonia1:MaterialIcon Kind="Calendar" Grid.Column="0" Grid.RowSpan="2" Classes="info-icon" />
@ -154,7 +154,7 @@
<Border Grid.Row="1" Classes="card"> <Border Grid.Row="1" Classes="card">
<Grid RowDefinitions="Auto,Auto,*"> <Grid RowDefinitions="Auto,Auto,*">
<TextBlock Grid.Row="0" Classes="h5 no-margin">Release notes</TextBlock> <TextBlock Grid.Row="0" Classes="h5 no-margin">Release notes</TextBlock>
<Separator Grid.Row="1" Classes="card-separator" /> <Border Grid.Row="1" Classes="card-separator" />
<avalonia:MarkdownScrollViewer Grid.Row="2" Markdown="{CompiledBinding Changelog}" MarkdownStyleName="FluentAvalonia"> <avalonia:MarkdownScrollViewer Grid.Row="2" Markdown="{CompiledBinding Changelog}" MarkdownStyleName="FluentAvalonia">
<avalonia:MarkdownScrollViewer.Styles> <avalonia:MarkdownScrollViewer.Styles>

View File

@ -24,7 +24,7 @@
</Styles> </Styles>
</UserControl.Styles> </UserControl.Styles>
<StackPanel> <StackPanel>
<Separator Classes="card-separator" /> <Border Classes="card-separator" />
<Grid ColumnDefinitions="*,Auto"> <Grid ColumnDefinitions="*,Auto">
<StackPanel Grid.Column="0"> <StackPanel Grid.Column="0">
<TextBlock TextWrapping="Wrap" Text="{CompiledBinding RequirementName}" /> <TextBlock TextWrapping="Wrap" Text="{CompiledBinding RequirementName}" />

View File

@ -8,9 +8,9 @@
x:DataType="sidebar:ModuleActivationRequirementsViewModel"> x:DataType="sidebar:ModuleActivationRequirementsViewModel">
<StackPanel> <StackPanel>
<Grid ColumnDefinitions="*,Auto,*"> <Grid ColumnDefinitions="*,Auto,*">
<Separator Grid.Column="0" Height="1" Background="{DynamicResource TextFillColorTertiaryBrush}" /> <Border Grid.Column="0" Height="1" Background="{DynamicResource TextFillColorTertiaryBrush}" />
<TextBlock Grid.Column="1" Margin="16 0">AND</TextBlock> <TextBlock Grid.Column="1" Margin="16 0">AND</TextBlock>
<Separator Grid.Column="2" Height="1" Background="{DynamicResource TextFillColorTertiaryBrush}" /> <Border Grid.Column="2" Height="1" Background="{DynamicResource TextFillColorTertiaryBrush}" />
</Grid> </Grid>
<Border Classes="card" Margin="0 5"> <Border Classes="card" Margin="0 5">
<StackPanel Orientation="Vertical"> <StackPanel Orientation="Vertical">

View File

@ -31,7 +31,7 @@
</StackPanel> </StackPanel>
<ToggleSwitch Grid.Row="0" Grid.Column="1" VerticalAlignment="Center" IsChecked="{CompiledBinding UIAutoRun.Value}" MinWidth="0" Margin="0 -10" /> <ToggleSwitch Grid.Row="0" Grid.Column="1" VerticalAlignment="Center" IsChecked="{CompiledBinding UIAutoRun.Value}" MinWidth="0" Margin="0 -10" />
</Grid> </Grid>
<Separator Classes="card-separator" /> <Border Classes="card-separator" />
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto"> <Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
<StackPanel Grid.Column="0"> <StackPanel Grid.Column="0">
@ -41,7 +41,7 @@
<ToggleSwitch IsChecked="{CompiledBinding !UIShowOnStartup.Value}" IsEnabled="{CompiledBinding UIAutoRun.Value}" MinWidth="0" Margin="0 -10" /> <ToggleSwitch IsChecked="{CompiledBinding !UIShowOnStartup.Value}" IsEnabled="{CompiledBinding UIAutoRun.Value}" MinWidth="0" Margin="0 -10" />
</StackPanel> </StackPanel>
</Grid> </Grid>
<Separator Classes="card-separator" /> <Border Classes="card-separator" />
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto"> <Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
<StackPanel Grid.Column="0"> <StackPanel Grid.Column="0">
@ -87,7 +87,7 @@
<ToggleSwitch IsChecked="{CompiledBinding UICheckForUpdates.Value}" MinWidth="0" /> <ToggleSwitch IsChecked="{CompiledBinding UICheckForUpdates.Value}" MinWidth="0" />
</StackPanel> </StackPanel>
</Grid> </Grid>
<Separator Classes="card-separator" /> <Border Classes="card-separator" />
<Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto"> <Grid RowDefinitions="*,*" ColumnDefinitions="*,Auto">
<StackPanel Grid.Column="0"> <StackPanel Grid.Column="0">