private void ProcessPatternEditorTime() { if (HamburgerMenu.CurrentPattern != null && HamburgerMenu.CurrentPattern.HasXAMLCode && _xamlCodeRendererSupported) { if (_timePatternEditedFirst != DateTime.MinValue && _timePatternEditedLast != DateTime.MinValue) { int secondsEdditingPattern = (int)Math.Floor((_timePatternEditedLast - _timePatternEditedFirst).TotalSeconds); TrackingManager.TrackEvent("xamleditor", "edited", HamburgerMenu.CurrentPattern.Name, secondsEdditingPattern); } else { TrackingManager.TrackEvent("xamleditor", "not_edited", HamburgerMenu.CurrentPattern.Name); } } _timePatternEditedFirst = _timePatternEditedLast = DateTime.MinValue; }
private async void DocumentationTextblock_OnLinkClicked(object sender, LinkClickedEventArgs e) { TrackingManager.TrackEvent("Link", e.Link); await Launcher.LaunchUriAsync(new Uri(e.Link)); }
private void GitHub_OnClick(object sender, RoutedEventArgs e) { TrackingManager.TrackEvent("Link", GitHub.NavigateUri.ToString()); }
private async void InfoAreaPivot_OnSelectionChanged(object sender, SelectionChangedEventArgs e) { if (InfoAreaPivot.SelectedItem != null) { if (DataContext is Pattern pattern) { TrackingManager.TrackEvent("PropertyGrid", (InfoAreaPivot.SelectedItem as FrameworkElement)?.Name, pattern.Name); } } if (HamburgerMenu.CurrentPattern == null) { return; } if (InfoAreaPivot.SelectedItem == PropertiesPivotItem) { // If we switch to the Properties Panel, we want to use a binded version of the Xaml Code. if (HamburgerMenu.CurrentPattern.HasXAMLCode) { _lastRenderedProperties = true; var t = UpdateXamlRenderAsync(HamburgerMenu.CurrentPattern.BindedXamlCode); } return; } if (HamburgerMenu.CurrentPattern.HasXAMLCode && InfoAreaPivot.SelectedItem == XamlPivotItem && _lastRenderedProperties) { // Use this flag so we don't re-render the XAML tab if we're switching from tabs other than the properties one. _lastRenderedProperties = false; // If we switch to the Live Preview, then we want to use the Value based Text XamlCodeRenderer.Text = HamburgerMenu.CurrentPattern.UpdatedXamlCode; var t = UpdateXamlRenderAsync(HamburgerMenu.CurrentPattern.UpdatedXamlCode); await XamlCodeRenderer.RevealPositionAsync(new Position(1, 1)); XamlCodeRenderer.Focus(FocusState.Programmatic); return; } if (HamburgerMenu.CurrentPattern.HasXAMLCode && InfoAreaPivot.SelectedItem == XamlReadOnlyPivotItem) { // Update Read-Only XAML tab on non-desktop devices to show changes to Properties XamlReadOnlyCodeRenderer.XamlSource = HamburgerMenu.CurrentPattern.UpdatedXamlCode; } if (HamburgerMenu.CurrentPattern.HasCSharpCode && InfoAreaPivot.SelectedItem == CSharpPivotItem) { CSharpCodeRenderer.CSharpSource = await HamburgerMenu.CurrentPattern.GetCSharpSourceAsync(); return; } if (HamburgerMenu.CurrentPattern.HasJavaScriptCode && InfoAreaPivot.SelectedItem == JavaScriptPivotItem) { JavaScriptCodeRenderer.JavaScriptSource = await HamburgerMenu.CurrentPattern.GetJavaScriptSourceAsync(); return; } }