using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace Tango.Scripting.IDE { /// /// Interaction logic for ScriptIDEView2.xaml /// public partial class ScriptIDEView2 : UserControl { public enum eSkin { Dark, Light } public static eSkin Skin { get; set; } public ScriptIDEView2() { InitializeComponent(); } public void ChangeSkin(eSkin newSkin) { Skin = newSkin; Resources.Clear(); Resources.MergedDictionaries.Clear(); if (Skin == eSkin.Dark) ApplyResources("Themes/DarkThemesColors.xaml"); else if (Skin == eSkin.Light) ApplyResources("Themes/LightThemesColors.xaml"); ApplyResources("Themes/Shared.xaml"); } private void ApplyResources(string src) { var dict = new ResourceDictionary() { Source = new Uri(src, UriKind.Relative) }; foreach (var mergeDict in dict.MergedDictionaries) { Resources.MergedDictionaries.Add(mergeDict); } foreach (var key in dict.Keys) { Resources[key] = dict[key]; } } private void Button_Click(object sender, RoutedEventArgs e) { MessageBox.Show("I am here"); } private void TreeViewControl_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs e) { IProject SelectedItem = SolutionTree.SelectedItem as IProject; if(SelectedItem != null && DataContext is ScriptIDEViewVM && ((ScriptIDEViewVM)DataContext).IsSolutionProject(SelectedItem)) { SolutionTree.ContextMenu = SolutionTree.Resources["SolutionContext"] as System.Windows.Controls.ContextMenu; } else { SolutionTree.ContextMenu = SolutionTree.Resources["FolderContext"] as System.Windows.Controls.ContextMenu; } } private void SolutionTree_PreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e) { TreeViewItem treeViewItem = VisualUpwardSearch(e.OriginalSource as DependencyObject); if (treeViewItem != null) { //treeViewItem.Focus(); treeViewItem.IsSelected = true; e.Handled = true; } } static TreeViewItem VisualUpwardSearch(DependencyObject source) { while (source != null && !(source is TreeViewItem)) source = VisualTreeHelper.GetParent(source); return source as TreeViewItem; } } }