Themes apply everywhere now

This commit is contained in:
sirhamsteralot
2018-03-26 02:19:27 +02:00
committed by John Gross
parent d92daccdbf
commit b18420ad55
9 changed files with 73 additions and 2 deletions

View File

@@ -28,6 +28,15 @@ namespace Torch.Server.Views.Blocks
public BlockView()
{
InitializeComponent();
ThemeControl.UpdateWeirdViews += UpdateResourceDict;
UpdateResourceDict(ThemeControl.currentTheme);
}
public void UpdateResourceDict(ResourceDictionary dictionary)
{
this.Resources.MergedDictionaries.Clear();
this.Resources.MergedDictionaries.Add(dictionary);
}
/*

View File

@@ -26,6 +26,15 @@ namespace Torch.Server.Views.Blocks
{
InitializeComponent();
DataContextChanged += OnDataContextChanged;
ThemeControl.UpdateWeirdViews += UpdateResourceDict;
UpdateResourceDict(ThemeControl.currentTheme);
}
public void UpdateResourceDict(ResourceDictionary dictionary)
{
this.Resources.MergedDictionaries.Clear();
this.Resources.MergedDictionaries.Add(dictionary);
}
private void OnDataContextChanged(object sender, DependencyPropertyChangedEventArgs args)

View File

@@ -23,6 +23,15 @@ namespace Torch.Server.Views.Entities
public CharacterView()
{
InitializeComponent();
ThemeControl.UpdateWeirdViews += UpdateResourceDict;
UpdateResourceDict(ThemeControl.currentTheme);
}
public void UpdateResourceDict(ResourceDictionary dictionary)
{
this.Resources.MergedDictionaries.Clear();
this.Resources.MergedDictionaries.Add(dictionary);
}
}
}

View File

@@ -17,6 +17,15 @@ namespace Torch.Server.Views.Entities
{
InitializeComponent();
DataContextChanged += OnDataContextChanged;
ThemeControl.UpdateWeirdViews += UpdateResourceDict;
UpdateResourceDict(ThemeControl.currentTheme);
}
public void UpdateResourceDict(ResourceDictionary dictionary)
{
this.Resources.MergedDictionaries.Clear();
this.Resources.MergedDictionaries.Add(dictionary);
}
private void OnDataContextChanged(object sender, DependencyPropertyChangedEventArgs e)

View File

@@ -1,4 +1,5 @@
using System.Windows.Controls;
using System.Windows;
using System.Windows.Controls;
namespace Torch.Server.Views.Entities
{
@@ -10,6 +11,15 @@ namespace Torch.Server.Views.Entities
public EntityControlsView()
{
InitializeComponent();
ThemeControl.UpdateWeirdViews += UpdateResourceDict;
UpdateResourceDict(ThemeControl.currentTheme);
}
public void UpdateResourceDict(ResourceDictionary dictionary)
{
this.Resources.MergedDictionaries.Clear();
this.Resources.MergedDictionaries.Add(dictionary);
}
}
}

View File

@@ -6,6 +6,7 @@
xmlns:entities="clr-namespace:Torch.Server.ViewModels.Entities"
xmlns:local="clr-namespace:Torch.Server.Views.Entities"
mc:Ignorable="d">
<UserControl.DataContext>
<entities:GridViewModel />
</UserControl.DataContext>

View File

@@ -23,6 +23,15 @@ namespace Torch.Server.Views.Entities
public GridView()
{
InitializeComponent();
ThemeControl.UpdateWeirdViews += UpdateResourceDict;
UpdateResourceDict(ThemeControl.currentTheme);
}
public void UpdateResourceDict(ResourceDictionary dictionary)
{
this.Resources.MergedDictionaries.Clear();
this.Resources.MergedDictionaries.Add(dictionary);
}
}
}

View File

@@ -25,6 +25,15 @@ namespace Torch.Server.Views.Entities
{
InitializeComponent();
DataContextChanged += VoxelMapView_DataContextChanged;
ThemeControl.UpdateWeirdViews += UpdateResourceDict;
UpdateResourceDict(ThemeControl.currentTheme);
}
public void UpdateResourceDict(ResourceDictionary dictionary)
{
this.Resources.MergedDictionaries.Clear();
this.Resources.MergedDictionaries.Add(dictionary);
}
private void VoxelMapView_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)

View File

@@ -22,6 +22,9 @@ namespace Torch.Server.Views
/// </summary>
public partial class ThemeControl : UserControl, INotifyPropertyChanged
{
public static Action<ResourceDictionary> UpdateWeirdViews;
public static ResourceDictionary currentTheme;
public TorchUI uiSource;
private TorchConfig _torchConfig;
@@ -66,7 +69,10 @@ namespace Torch.Server.Views
public void ChangeTheme(Uri uri)
{
uiSource.Resources.MergedDictionaries.Clear();
uiSource.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = uri });
var resource = new ResourceDictionary() { Source = uri };
uiSource.Resources.MergedDictionaries.Add(resource);
UpdateWeirdViews?.Invoke(resource);
currentTheme = resource;
}
private void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e)