using System.Windows; using System.Windows.Interop; using Wpf.Ui.Appearance; using Wpf.Ui.Controls; using Wpf.Ui.Mvvm.Contracts; using Wpf.Ui.Mvvm.Services; namespace Bloxstrap.UI.Elements.Base { public abstract class WpfUiWindow : UiWindow { private readonly IThemeService _themeService = new ThemeService(); public WpfUiWindow() { ApplyTheme(); } public void ApplyTheme() { _themeService.SetTheme(App.Settings.Prop.Theme.GetFinal() == Enums.Theme.Dark ? ThemeType.Dark : ThemeType.Light); _themeService.SetSystemAccent(); } protected override void OnSourceInitialized(EventArgs e) { if (App.Settings.Prop.WPFSoftwareRender || App.LaunchSettings.NoGPUFlag.Active) { if (PresentationSource.FromVisual(this) is HwndSource hwndSource) hwndSource.CompositionTarget.RenderMode = RenderMode.SoftwareOnly; } base.OnSourceInitialized(e); } } }