Files
LanMountainDesktop/LanMountainDesktop/Views/SettingsPages/ComponentsSettingsPage.axaml
2026-03-20 18:05:42 +08:00

102 lines
5.4 KiB
XML

<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="using:LanMountainDesktop.ViewModels"
xmlns:controls="using:LanMountainDesktop.Controls"
xmlns:ui="using:FluentAvalonia.UI.Controls"
xmlns:fi="using:FluentIcons.Avalonia.Fluent"
x:Class="LanMountainDesktop.Views.SettingsPages.ComponentsSettingsPage"
x:DataType="vm:ComponentsSettingsPageViewModel">
<ScrollViewer VerticalScrollBarVisibility="Auto">
<StackPanel Classes="settings-page-container">
<controls:IconText Icon="Apps"
Text="{Binding ComponentsHeader}"
Margin="0,0,0,4" />
<ui:SettingsExpander Header="{Binding ComponentsHeader}"
IsExpanded="True">
<ui:SettingsExpander.IconSource>
<fi:SymbolIconSource Symbol="Apps" />
</ui:SettingsExpander.IconSource>
<ui:SettingsExpanderItem>
<Grid ColumnDefinitions="Auto,*,Auto" ColumnSpacing="16">
<TextBlock Text="{Binding ShortSideCellsLabel}"
VerticalAlignment="Center" />
<Slider Grid.Column="1"
Minimum="6"
Maximum="96"
IsSnapToTickEnabled="True"
TickFrequency="1"
Value="{Binding ShortSideCells}" />
<TextBlock Grid.Column="2"
Width="32"
Text="{Binding ShortSideCells}"
VerticalAlignment="Center"
HorizontalAlignment="Right" />
</Grid>
</ui:SettingsExpanderItem>
<ui:SettingsExpanderItem>
<Grid ColumnDefinitions="Auto,*,Auto" ColumnSpacing="16">
<TextBlock Text="{Binding EdgeInsetPercentLabel}"
VerticalAlignment="Center" />
<Slider Grid.Column="1"
Minimum="0"
Maximum="30"
IsSnapToTickEnabled="True"
TickFrequency="1"
Value="{Binding EdgeInsetPercent}" />
<TextBlock Grid.Column="2"
Width="32"
Text="{Binding EdgeInsetPercent, StringFormat='{}{0}%'}"
VerticalAlignment="Center"
HorizontalAlignment="Right" />
</Grid>
</ui:SettingsExpanderItem>
<ui:SettingsExpanderItem>
<Grid ColumnDefinitions="Auto,*">
<TextBlock Text="{Binding SpacingPresetLabel}"
VerticalAlignment="Center" />
<ComboBox Grid.Column="1"
Width="180"
ItemsSource="{Binding SpacingPresets}"
SelectedItem="{Binding SelectedSpacingPreset}">
<ComboBox.ItemTemplate>
<DataTemplate x:DataType="vm:SelectionOption">
<TextBlock Text="{Binding Label}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
</ui:SettingsExpanderItem>
</ui:SettingsExpander>
<controls:IconText Icon="ShapeOrganic"
Text="{Binding ComponentRadiusHeader}"
Margin="0,12,0,4" />
<ui:SettingsExpander Header="{Binding GlobalCornerRadiusLabel}"
Description="{Binding GlobalCornerRadiusDescription}">
<ui:SettingsExpander.IconSource>
<fi:SymbolIconSource Symbol="ShapeOrganic" />
</ui:SettingsExpander.IconSource>
<ui:SettingsExpanderItem>
<Grid ColumnDefinitions="Auto,*,Auto" ColumnSpacing="16">
<TextBlock Text="{Binding GlobalCornerRadiusLabel}"
VerticalAlignment="Center" />
<Slider Grid.Column="1"
Minimum="{Binding GlobalCornerRadiusMinimum}"
Maximum="{Binding GlobalCornerRadiusMaximum}"
SmallChange="0.01"
LargeChange="0.1"
Value="{Binding GlobalCornerRadiusScale}" />
<TextBlock Grid.Column="2"
Width="56"
Text="{Binding GlobalCornerRadiusScale, StringFormat={}{0:F2}x}"
VerticalAlignment="Center"
HorizontalAlignment="Right" />
</Grid>
</ui:SettingsExpanderItem>
</ui:SettingsExpander>
</StackPanel>
</ScrollViewer>
</UserControl>