mirror of
https://github.com/wwiinnddyy/LanMountainDesktop.git
synced 2026-06-21 16:14:28 +08:00
259 lines
14 KiB
XML
259 lines
14 KiB
XML
<UserControl xmlns="https://github.com/avaloniaui"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
xmlns:ui="using:FluentAvalonia.UI.Controls"
|
|
xmlns:fi="using:FluentIcons.Avalonia.Fluent"
|
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="1200"
|
|
x:Class="LanMountainDesktop.Views.SettingsPages.WeatherSettingsPage">
|
|
|
|
<StackPanel x:Name="WeatherSettingsContentPanel"
|
|
Margin="0,0,8,0"
|
|
Spacing="16">
|
|
<TextBlock x:Name="WeatherPanelTitleTextBlock"
|
|
FontSize="24"
|
|
FontWeight="SemiBold"
|
|
Foreground="{DynamicResource AdaptiveTextPrimaryBrush}"
|
|
Text="Weather" />
|
|
|
|
<!-- Weather Preview Card -->
|
|
<Border Classes="settings-expander-shell">
|
|
<ui:SettingsExpander x:Name="WeatherPreviewSettingsExpander"
|
|
Header="Weather Preview"
|
|
Description="Refresh and verify current weather service status."
|
|
IsExpanded="True">
|
|
<ui:SettingsExpander.IconSource>
|
|
<fi:SymbolIconSource Symbol="WeatherSunny" />
|
|
</ui:SettingsExpander.IconSource>
|
|
<ui:SettingsExpander.Footer>
|
|
<StackPanel Orientation="Horizontal" Spacing="8">
|
|
<Button x:Name="WeatherPreviewButton"
|
|
Padding="12,8"
|
|
Content="Refresh" />
|
|
<ui:ProgressRing x:Name="WeatherPreviewProgressRing"
|
|
Width="20"
|
|
Height="20"
|
|
IsActive="True"
|
|
IsVisible="False" />
|
|
</StackPanel>
|
|
</ui:SettingsExpander.Footer>
|
|
|
|
<ui:SettingsExpanderItem>
|
|
<Grid ColumnDefinitions="Auto,*" ColumnSpacing="12">
|
|
<Border Width="44"
|
|
Height="44"
|
|
CornerRadius="{DynamicResource DesignCornerRadiusXs}"
|
|
BorderThickness="1"
|
|
BorderBrush="{DynamicResource AdaptiveButtonBorderBrush}"
|
|
Background="{DynamicResource AdaptiveButtonBackgroundBrush}">
|
|
<fi:SymbolIcon x:Name="WeatherPreviewIconSymbol"
|
|
Symbol="WeatherSunny"
|
|
IconVariant="Regular"
|
|
FontSize="22"
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Center" />
|
|
</Border>
|
|
<StackPanel Grid.Column="1"
|
|
VerticalAlignment="Center"
|
|
Spacing="2">
|
|
<TextBlock x:Name="WeatherPreviewTemperatureTextBlock"
|
|
FontSize="22"
|
|
FontWeight="SemiBold"
|
|
Text="--°" />
|
|
<TextBlock x:Name="WeatherPreviewUpdatedTextBlock"
|
|
FontSize="12"
|
|
Foreground="{DynamicResource AdaptiveTextSecondaryBrush}"
|
|
Text="-" />
|
|
</StackPanel>
|
|
</Grid>
|
|
</ui:SettingsExpanderItem>
|
|
|
|
<ui:SettingsExpanderItem>
|
|
<TextBlock x:Name="WeatherPreviewResultTextBlock"
|
|
Foreground="{DynamicResource AdaptiveTextSecondaryBrush}"
|
|
TextWrapping="Wrap"
|
|
Text="Use refresh to verify your weather configuration." />
|
|
</ui:SettingsExpanderItem>
|
|
</ui:SettingsExpander>
|
|
</Border>
|
|
|
|
<!-- Location Source Card -->
|
|
<Border Classes="settings-expander-shell">
|
|
<ui:SettingsExpander x:Name="WeatherLocationSettingsExpander"
|
|
Header="Location Source"
|
|
Description="Choose how weather widgets resolve location."
|
|
IsExpanded="True">
|
|
<ui:SettingsExpander.IconSource>
|
|
<fi:SymbolIconSource Symbol="Location" />
|
|
</ui:SettingsExpander.IconSource>
|
|
<ui:SettingsExpander.Footer>
|
|
<ListBox x:Name="WeatherLocationModeChipListBox"
|
|
Classes="settings-chip-list"
|
|
SelectionMode="Single">
|
|
<ListBox.ItemsPanel>
|
|
<ItemsPanelTemplate>
|
|
<WrapPanel Orientation="Horizontal" />
|
|
</ItemsPanelTemplate>
|
|
</ListBox.ItemsPanel>
|
|
<ListBoxItem x:Name="WeatherLocationModeCityChipItem"
|
|
Tag="CitySearch"
|
|
Content="City Search" />
|
|
<ListBoxItem x:Name="WeatherLocationModeCoordinatesChipItem"
|
|
Tag="Coordinates"
|
|
Content="Coordinates" />
|
|
</ListBox>
|
|
</ui:SettingsExpander.Footer>
|
|
|
|
<ui:SettingsExpanderItem>
|
|
<ui:SettingsExpanderItem.Footer>
|
|
<ToggleSwitch x:Name="WeatherAutoRefreshToggleSwitch"
|
|
Content="Auto refresh location on startup" />
|
|
</ui:SettingsExpanderItem.Footer>
|
|
</ui:SettingsExpanderItem>
|
|
|
|
<!-- ComboBox hidden as in original -->
|
|
<ComboBox x:Name="WeatherLocationModeComboBox"
|
|
IsVisible="False">
|
|
<ComboBoxItem x:Name="WeatherLocationModeCityItem" Tag="CitySearch" Content="City Search" />
|
|
<ComboBoxItem x:Name="WeatherLocationModeCoordinatesItem" Tag="Coordinates" Content="Coordinates" />
|
|
</ComboBox>
|
|
</ui:SettingsExpander>
|
|
</Border>
|
|
|
|
<!-- City Search Card -->
|
|
<Border Classes="settings-expander-shell">
|
|
<ui:SettingsExpander x:Name="WeatherCitySearchSettingsExpander"
|
|
Header="City Search"
|
|
Description="Search cities and apply one weather location."
|
|
IsExpanded="True">
|
|
<ui:SettingsExpander.Footer>
|
|
<Button x:Name="WeatherApplyCityButton"
|
|
Padding="12,8"
|
|
Content="Apply City" />
|
|
</ui:SettingsExpander.Footer>
|
|
|
|
<ui:SettingsExpanderItem Content="Advanced Filters">
|
|
<StackPanel Spacing="10">
|
|
<Grid ColumnDefinitions="*,Auto,Auto" ColumnSpacing="8">
|
|
<TextBox x:Name="WeatherCitySearchTextBox"
|
|
Watermark="e.g. Beijing" />
|
|
<ui:ProgressRing x:Name="WeatherSearchProgressRing"
|
|
Grid.Column="1"
|
|
Width="24"
|
|
Height="24"
|
|
IsActive="True"
|
|
IsVisible="False" />
|
|
<Button x:Name="WeatherSearchButton"
|
|
Grid.Column="2"
|
|
Padding="12,8"
|
|
Content="Search" />
|
|
</Grid>
|
|
<ComboBox x:Name="WeatherCityResultsComboBox"
|
|
Width="320" />
|
|
<TextBlock x:Name="WeatherSearchStatusTextBlock"
|
|
FontSize="12"
|
|
Foreground="{DynamicResource AdaptiveTextSecondaryBrush}"
|
|
Text="Search by city name and apply one location." />
|
|
</StackPanel>
|
|
</ui:SettingsExpanderItem>
|
|
</ui:SettingsExpander>
|
|
</Border>
|
|
|
|
<!-- Coordinates Card -->
|
|
<Border Classes="settings-expander-shell">
|
|
<ui:SettingsExpander x:Name="WeatherCoordinateSettingsExpander"
|
|
Header="Coordinates"
|
|
Description="Set latitude/longitude and optional key/name."
|
|
IsVisible="False"
|
|
IsExpanded="True">
|
|
<ui:SettingsExpander.Footer>
|
|
<Button x:Name="WeatherApplyCoordinatesButton"
|
|
Padding="12,8"
|
|
Content="Apply Coordinates" />
|
|
</ui:SettingsExpander.Footer>
|
|
|
|
<ui:SettingsExpanderItem>
|
|
<StackPanel Spacing="12">
|
|
<Grid ColumnDefinitions="*,*" ColumnSpacing="10">
|
|
<ui:NumberBox x:Name="WeatherLatitudeNumberBox"
|
|
Grid.Column="0"
|
|
Header="Latitude"
|
|
Minimum="-90"
|
|
Maximum="90"
|
|
SpinButtonPlacementMode="Inline"
|
|
SmallChange="0.1"
|
|
LargeChange="1"
|
|
Value="39.9042" />
|
|
<ui:NumberBox x:Name="WeatherLongitudeNumberBox"
|
|
Grid.Column="1"
|
|
Header="Longitude"
|
|
Minimum="-180"
|
|
Maximum="180"
|
|
SpinButtonPlacementMode="Inline"
|
|
SmallChange="0.1"
|
|
LargeChange="1"
|
|
Value="116.4074" />
|
|
</Grid>
|
|
<TextBox x:Name="WeatherLocationKeyTextBox"
|
|
Watermark="Location key (optional)" />
|
|
<TextBox x:Name="WeatherLocationNameTextBox"
|
|
Watermark="Display name (optional)" />
|
|
<TextBlock x:Name="WeatherCoordinateStatusTextBlock"
|
|
FontSize="12"
|
|
Foreground="{DynamicResource AdaptiveTextSecondaryBrush}" />
|
|
</StackPanel>
|
|
</ui:SettingsExpanderItem>
|
|
</ui:SettingsExpander>
|
|
</Border>
|
|
|
|
<!-- Excluded Alerts Card -->
|
|
<Border Classes="settings-expander-shell">
|
|
<ui:SettingsExpander x:Name="WeatherAlertFilterSettingsExpander"
|
|
Header="Excluded Alerts"
|
|
Description="Alerts containing these words will not be shown. One rule per line."
|
|
IsExpanded="True">
|
|
<ui:SettingsExpanderItem>
|
|
<TextBox x:Name="WeatherExcludedAlertsTextBox"
|
|
MinHeight="96"
|
|
MaxHeight="220"
|
|
Width="360"
|
|
TextWrapping="Wrap"
|
|
AcceptsReturn="True" />
|
|
</ui:SettingsExpanderItem>
|
|
</ui:SettingsExpander>
|
|
</Border>
|
|
|
|
<!-- Weather Style Card -->
|
|
<Border Classes="settings-expander-shell">
|
|
<ui:SettingsExpander x:Name="WeatherIconPackSettingsExpander"
|
|
Header="Weather Icon Style"
|
|
Description="Choose Fluent Icon style for weather symbols."
|
|
IsExpanded="True">
|
|
<ui:SettingsExpander.Footer>
|
|
<ComboBox x:Name="WeatherIconPackComboBox"
|
|
Width="240">
|
|
<ComboBoxItem x:Name="WeatherIconPackFluentRegularItem" Tag="FluentRegular" Content="Fluent Regular" />
|
|
<ComboBoxItem x:Name="WeatherIconPackFluentFilledItem" Tag="FluentFilled" Content="Fluent Filled" />
|
|
</ComboBox>
|
|
</ui:SettingsExpander.Footer>
|
|
</ui:SettingsExpander>
|
|
</Border>
|
|
|
|
<!-- No TLS Card -->
|
|
<Border Classes="settings-expander-shell">
|
|
<ui:SettingsExpander x:Name="WeatherNoTlsSettingsExpander"
|
|
Header="No TLS Weather Request"
|
|
Description="Not recommended. Enable only for incompatible network environments."
|
|
IsExpanded="True">
|
|
<ui:SettingsExpander.Footer>
|
|
<ToggleSwitch x:Name="WeatherNoTlsToggleSwitch" />
|
|
</ui:SettingsExpander.Footer>
|
|
</ui:SettingsExpander>
|
|
</Border>
|
|
|
|
<TextBlock x:Name="WeatherLocationStatusTextBlock"
|
|
Foreground="{DynamicResource AdaptiveTextSecondaryBrush}"
|
|
Text="No city location is configured." />
|
|
</StackPanel>
|
|
</UserControl>
|