This commit is contained in:
lincube
2026-02-27 13:43:27 +08:00
parent 9c42ada69a
commit e8f942b0f6
7 changed files with 266 additions and 9 deletions

View File

@@ -0,0 +1,23 @@
<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"
mc:Ignorable="d"
d:DesignWidth="220"
d:DesignHeight="70"
x:Class="LanMontainDesktop.Views.Components.ClockWidget">
<Border Padding="8"
CornerRadius="8"
BorderBrush="#80A5B4FC"
BorderThickness="1"
Background="#CC0F172A">
<TextBlock x:Name="TimeTextBlock"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="26"
FontWeight="SemiBold"
Foreground="White" />
</Border>
</UserControl>

View File

@@ -0,0 +1,47 @@
using System;
using System.Globalization;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Threading;
namespace LanMontainDesktop.Views.Components;
public partial class ClockWidget : UserControl
{
private readonly DispatcherTimer _timer = new()
{
Interval = TimeSpan.FromSeconds(1)
};
public ClockWidget()
{
InitializeComponent();
_timer.Tick += OnTimerTick;
AttachedToVisualTree += OnAttachedToVisualTree;
DetachedFromVisualTree += OnDetachedFromVisualTree;
UpdateClock();
}
private void OnAttachedToVisualTree(object? sender, VisualTreeAttachmentEventArgs e)
{
UpdateClock();
_timer.Start();
}
private void OnDetachedFromVisualTree(object? sender, VisualTreeAttachmentEventArgs e)
{
_timer.Stop();
}
private void OnTimerTick(object? sender, EventArgs e)
{
UpdateClock();
}
private void UpdateClock()
{
var now = DateTime.Now;
TimeTextBlock.Text = now.ToString("HH:mm:ss", CultureInfo.CurrentCulture);
}
}