void OnSamplesSelectionChanged(object oldValue, object newValue) { #else void OnSamplesSelectionChanged(object sender, RoutedPropertyChangedEventArgs <object> args) { object newValue = args.NewValue; #endif TreeViewItem tvi = (TreeViewItem)newValue; if (tvi != null && !tvi.HasItems) { string sampleName = (string)tvi.Tag; if (_lastSample != sampleName) { LoadSample(sampleName); _lastSample = sampleName; } } } void LoadSample(string sampleName) { _sampleSelector.IsEnabled = false; UIElement sample = (UIElement)LoadXaml(sampleName); if (_sampleContainer1.Child == null) { // Show container 1 _sampleContainer1.Child = sample; _showContainer1.Completed += OnShowSampleCompleted; _showContainer1.Begin(); } else { // Show container 2 _sampleContainer2.Child = sample; _showContainer2.Completed += OnShowSampleCompleted; _showContainer2.Begin(); } } object LoadXaml(string xaml) { #if NOESIS NoesisXaml xamlUnity = (NoesisXaml)UnityEngine.Resources.Load(xaml, typeof(NoesisXaml)); return(xamlUnity.Load()); #else object root; string path = "../../Assets/NoesisGUI/Samples/ControlGallery/Resources/" + xaml + ".xaml"; using (FileStream stream = new FileStream(path, FileMode.Open)) { root = XamlReader.Load(stream); } return(root); #endif } #if NOESIS void OnShowSampleCompleted(object sender, TimelineEventArgs e) #else void OnShowSampleCompleted(object sender, EventArgs e) #endif { if (_sampleContainer1.Visibility == Visibility.Visible) { // Container 1 shown _showContainer1.Completed -= OnShowSampleCompleted; _sampleContainer2.Child = null; } else { // Container 2 shown _showContainer2.Completed -= OnShowSampleCompleted; _sampleContainer1.Child = null; } _sampleSelector.IsEnabled = true; } void OnSizeChanged(object sender, SizeChangedEventArgs e) { Size newSize = e.NewSize; if (newSize.Width > newSize.Height) { // Landscape _selectorTopContainer.Child = null; _selectorLeftContainer.Child = _selector; _selectorTop.Visibility = Visibility.Collapsed; _selectorLeft.Visibility = Visibility.Visible; _selectorTopExpand.IsChecked = false; _itemHeight.Height = newSize.Width * 0.05f; } else { // Portrait _selectorLeftContainer.Child = null; _selectorTopContainer.Child = _selector; _selectorLeft.Visibility = Visibility.Collapsed; _selectorTop.Visibility = Visibility.Visible; _selectorLeftExpand.IsChecked = false; _itemHeight.Height = newSize.Height * 0.05f; } } void OnSampleOverlayMouseDown(object sender, MouseButtonEventArgs e) { _selectorLeftExpand.IsChecked = false; _selectorTopExpand.IsChecked = false; } #region Private members ComboBox _styleSelector; ResourceDictionary _noesisStyleResources; ResourceDictionary _simpleStyleResources; ResourceDictionary _windowsStyleResources; Grid _selector; TreeView _sampleSelector; string _lastSample; Viewbox _sampleContainer; Border _sampleContainer1; Border _sampleContainer2; Grid _sampleOverlay; Storyboard _showContainer1; Storyboard _showContainer2; Border _selectorTopContainer; StackPanel _selectorTop; ToggleButton _selectorTopExpand; Border _selectorLeftContainer; StackPanel _selectorLeft; ToggleButton _selectorLeftExpand; Decorator _itemHeight; #endregion }