| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- using Avalonia.Controls;
- using Avalonia.VisualTree;
- using YZWater.Avalonia.Controls;
- namespace YZWater.Avalonia.Views;
- public partial class ViewEView : UserControl
- {
- public ViewEView()
- {
- InitializeComponent();
- AttachedToVisualTree += (_, _) =>
- {
- // 閬嶅巻瑙嗚鏍戣缃儗鏅
- foreach (var v in this.GetVisualDescendants())
- {
- if (v is Border b)
- {
- if (b.Name == "TitleBar") b.Background = ThemeHelper.HeaderBg;
- else if (b.Name == "StatusBar") b.Background = ThemeHelper.NavBg;
- else if (b.Name == "RootBorder") b.Background = ThemeHelper.AppBg;
- }
- else if (v is TextBlock tb)
- {
- if (tb.Name == "TitleText") tb.Foreground = ThemeHelper.HeaderText;
- else if (tb.Name == "SubtitleText") tb.Foreground = ThemeHelper.HeaderSubtext;
- }
- }
- ThemeHelper.ThemeChanged += ApplyTheme;
- };
- DetachedFromVisualTree += (_, _) => ThemeHelper.ThemeChanged -= ApplyTheme;
- }
- private void ApplyTheme()
- {
- foreach (var v in this.GetVisualDescendants())
- {
- if (v is Border b)
- {
- if (b.Name == "TitleBar") b.Background = ThemeHelper.HeaderBg;
- else if (b.Name == "StatusBar") b.Background = ThemeHelper.NavBg;
- else if (b.Name == "RootBorder") b.Background = ThemeHelper.AppBg;
- }
- else if (v is TextBlock tb)
- {
- if (tb.Name == "TitleText") tb.Foreground = ThemeHelper.HeaderText;
- else if (tb.Name == "SubtitleText") tb.Foreground = ThemeHelper.HeaderSubtext;
- }
- }
- }
- }
|