| 123456789101112131415161718192021222324252627282930313233343536373839 |
- using Avalonia.Controls;
- using Avalonia.VisualTree;
- using YZWater.Avalonia.Controls;
- namespace YZWater.Avalonia.Views;
- public partial class ViewBView : UserControl
- {
- public ViewBView()
- {
- InitializeComponent();
- AttachedToVisualTree += (_, _) =>
- {
- ApplyTheme();
- ThemeHelper.ThemeChanged += ApplyTheme;
- };
- DetachedFromVisualTree += (_, _) =>
- {
- ThemeHelper.ThemeChanged -= ApplyTheme;
- };
- }
- private void ApplyTheme()
- {
- foreach (var visual in this.GetVisualDescendants())
- {
- if (visual is Border border && border.Name == "TitleBar")
- border.Background = ThemeHelper.HeaderBg;
- else if (visual is Border sb && sb.Name == "StatusBar")
- sb.Background = ThemeHelper.NavBg;
- else if (visual is Border rb && rb.Name == "RootBorder")
- rb.Background = ThemeHelper.AppBg;
- else if (visual is TextBlock tb && tb.Name == "TitleText")
- tb.Foreground = ThemeHelper.HeaderText;
- else if (visual is TextBlock stb && stb.Name == "SubtitleText")
- stb.Foreground = ThemeHelper.HeaderSubtext;
- }
- }
- }
|