public void VerifySimpleCollectionScenario() { var objects = new Dictionary <string, WeakReference>(); RunOnUIThread.Execute(() => { var rating = new RatingControl(); objects["Rating"] = new WeakReference(rating); var colorPicker = new ColorPicker(); objects["ColorPicker"] = new WeakReference(colorPicker); var navigationView = new NavigationView(); objects["NavigationView"] = new WeakReference(navigationView); var parallaxView = new ParallaxView(); objects["ParallaxView"] = new WeakReference(parallaxView); var scrollPresenter = new ScrollPresenter(); objects["ScrollPresenter"] = new WeakReference(scrollPresenter); if (PlatformConfiguration.IsOsVersionGreaterThanOrEqual(OSVersion.Redstone2)) { var scrollView = new ScrollView(); objects["ScrollView"] = new WeakReference(scrollView); } }); IdleSynchronizer.Wait(); GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); RunOnUIThread.Execute(() => CheckLeaks(objects)); }
private void ScrollView_BringingIntoView(ScrollView sender, ScrollingBringingIntoViewEventArgs args) { string asyncEventMessage = "BringingIntoView ScrollPresenter=" + sender.Name; asyncEventMessage += ", TargetHorizontalOffset=" + args.TargetHorizontalOffset + ", TargetVerticalOffset=" + args.TargetVerticalOffset; asyncEventMessage += ", OffsetsChangeCorrelationId=" + args.CorrelationId; asyncEventMessage += ", SnapPointsMode=" + args.SnapPointsMode; asyncEventMessage += ", RequestEventArgs.AnimationDesired=" + args.RequestEventArgs.AnimationDesired + ", RequestEventArgs.Handled=" + args.RequestEventArgs.Handled; asyncEventMessage += ", RequestEventArgs.HorizontalAlignmentRatio=" + args.RequestEventArgs.HorizontalAlignmentRatio + ", RequestEventArgs.VerticalAlignmentRatio=" + args.RequestEventArgs.VerticalAlignmentRatio; asyncEventMessage += ", RequestEventArgs.HorizontalOffset=" + args.RequestEventArgs.HorizontalOffset + ", RequestEventArgs.VerticalOffset=" + args.RequestEventArgs.VerticalOffset; asyncEventMessage += ", RequestEventArgs.TargetRect=" + args.RequestEventArgs.TargetRect + ", RequestEventArgs.TargetElement=" + (args.RequestEventArgs.TargetElement as FrameworkElement).Name; asyncEventMessage += ", OriginalSource="; if (args.RequestEventArgs.OriginalSource == null) { asyncEventMessage += "null"; } else { asyncEventMessage += (args.RequestEventArgs.OriginalSource as FrameworkElement).Name; } AppendAsyncEventMessage(asyncEventMessage); if (chkCancelOperationInBringingIntoView.IsChecked == true) { args.Cancel = true; } }
private void UseScrollView(ScrollView sv2) { if (scrollView == sv2 || sv2 == null) { return; } try { if (scrollView == null && (chkLogScrollViewMessages.IsChecked == true || chkLogScrollPresenterMessages.IsChecked == true)) { MUXControlsTestHooks.LoggingMessage += MUXControlsTestHooks_LoggingMessage; if (chkLogScrollPresenterMessages.IsChecked == true) { MUXControlsTestHooks.SetLoggingLevelForType("ScrollPresenter", isLoggingInfoLevel: true, isLoggingVerboseLevel: true); } if (chkLogScrollViewMessages.IsChecked == true) { MUXControlsTestHooks.SetLoggingLevelForType("ScrollView", isLoggingInfoLevel: true, isLoggingVerboseLevel: true); } } scrollView = sv2; UpdateContentOrientation(); UpdateHorizontalScrollMode(); UpdateVerticalScrollMode(); UpdateZoomMode(); UpdateWidth(); UpdateHeight(); UpdatePadding(); UpdateHorizontalScrollBarVisibility(); UpdateVerticalScrollBarVisibility(); chkIsEnabled.IsChecked = scrollView.IsEnabled; chkIsTabStop.IsChecked = scrollView.IsTabStop; UpdateContentWidth(); UpdateContentHeight(); UpdateContentMargin(); Control contentAsC = scrollView.Content as Control; if (contentAsC != null) { chkIsContentEnabled.IsChecked = contentAsC.IsEnabled; chkIsContentTabStop.IsChecked = contentAsC.IsTabStop; } } catch (Exception ex) { txtExceptionReport.Text = ex.ToString(); lstLogs.Items.Add(ex.ToString()); } }
public void VerifyPropertyValuesAfterTemplateApplication() { if (PlatformConfiguration.IsOSVersionLessThan(OSVersion.Redstone2)) { Log.Warning("Test is disabled on pre-RS2 because ScrollView not supported pre-RS2"); return; } using (PrivateLoggingHelper privateSVLoggingHelper = new PrivateLoggingHelper("ScrollView", "ScrollPresenter")) { ScrollView scrollView = null; Rectangle rectangleScrollViewContent = null; AutoResetEvent scrollViewLoadedEvent = new AutoResetEvent(false); AutoResetEvent scrollViewUnloadedEvent = new AutoResetEvent(false); RunOnUIThread.Execute(() => { rectangleScrollViewContent = new Rectangle(); scrollView = new ScrollView(); SetupDefaultUI(scrollView, rectangleScrollViewContent, scrollViewLoadedEvent, scrollViewUnloadedEvent); }); WaitForEvent("Waiting for Loaded event", scrollViewLoadedEvent); RunOnUIThread.Execute(() => { Log.Comment("Verifying ScrollView property values after Loaded event"); Verify.AreEqual(scrollView.Content, rectangleScrollViewContent); Verify.IsNotNull(ScrollViewTestHooks.GetScrollPresenterPart(scrollView)); Verify.AreEqual(ScrollViewTestHooks.GetScrollPresenterPart(scrollView).Content, rectangleScrollViewContent); Verify.IsNotNull(scrollView.HorizontalScrollController); Verify.IsNotNull(scrollView.VerticalScrollController); Verify.AreEqual(scrollView.ExtentWidth, c_defaultUIScrollViewContentWidth); Verify.AreEqual(scrollView.ExtentHeight, c_defaultUIScrollViewContentHeight); Verify.AreEqual(scrollView.ViewportWidth, c_defaultUIScrollViewWidth); Verify.AreEqual(scrollView.ViewportHeight, c_defaultUIScrollViewHeight); Verify.AreEqual(scrollView.ScrollableWidth, c_defaultUIScrollViewContentWidth - c_defaultUIScrollViewWidth); Verify.AreEqual(scrollView.ScrollableHeight, c_defaultUIScrollViewContentHeight - c_defaultUIScrollViewHeight); Log.Comment("Resetting window content and ScrollView"); Content = null; scrollView = null; }); WaitForEvent("Waiting for Unloaded event", scrollViewUnloadedEvent); IdleSynchronizer.Wait(); Log.Comment("Garbage collecting..."); GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); Log.Comment("Done"); } }
public void VerifyDefaultPropertyValues() { if (PlatformConfiguration.IsOSVersionLessThan(OSVersion.Redstone2)) { Log.Warning("Test is disabled on pre-RS2 because ScrollView not supported pre-RS2"); return; } RunOnUIThread.Execute(() => { ScrollView scrollView = new ScrollView(); Verify.IsNotNull(scrollView); Log.Comment("Verifying ScrollView default property values"); Verify.IsNull(scrollView.Content); Verify.IsNull(ScrollViewTestHooks.GetScrollPresenterPart(scrollView)); Verify.IsNull(scrollView.HorizontalScrollController); Verify.IsNull(scrollView.VerticalScrollController); #if USE_SCROLLMODE_AUTO Verify.AreEqual(scrollView.ComputedHorizontalScrollMode, c_defaultComputedHorizontalScrollMode); Verify.AreEqual(scrollView.ComputedVerticalScrollMode, c_defaultComputedVerticalScrollMode); #endif Verify.AreEqual(scrollView.IgnoredInputKind, c_defaultIgnoredInputKind); Verify.AreEqual(scrollView.ContentOrientation, c_defaultContentOrientation); Verify.AreEqual(scrollView.HorizontalScrollChainingMode, c_defaultHorizontalScrollChainingMode); Verify.AreEqual(scrollView.VerticalScrollChainingMode, c_defaultVerticalScrollChainingMode); Verify.AreEqual(scrollView.HorizontalScrollRailingMode, c_defaultHorizontalScrollRailingMode); Verify.AreEqual(scrollView.VerticalScrollRailingMode, c_defaultVerticalScrollRailingMode); Verify.AreEqual(scrollView.HorizontalScrollMode, c_defaultHorizontalScrollMode); Verify.AreEqual(scrollView.VerticalScrollMode, c_defaultVerticalScrollMode); Verify.AreEqual(scrollView.ZoomMode, c_defaultZoomMode); Verify.AreEqual(scrollView.ZoomChainingMode, c_defaultZoomChainingMode); Verify.IsGreaterThan(scrollView.MinZoomFactor, c_defaultMinZoomFactor - c_epsilon); Verify.IsLessThan(scrollView.MinZoomFactor, c_defaultMinZoomFactor + c_epsilon); Verify.IsGreaterThan(scrollView.MaxZoomFactor, c_defaultMaxZoomFactor - c_epsilon); Verify.IsLessThan(scrollView.MaxZoomFactor, c_defaultMaxZoomFactor + c_epsilon); Verify.AreEqual(scrollView.HorizontalAnchorRatio, c_defaultAnchorRatio); Verify.AreEqual(scrollView.VerticalAnchorRatio, c_defaultAnchorRatio); Verify.AreEqual(scrollView.ExtentWidth, 0.0); Verify.AreEqual(scrollView.ExtentHeight, 0.0); Verify.AreEqual(scrollView.ViewportWidth, 0.0); Verify.AreEqual(scrollView.ViewportHeight, 0.0); Verify.AreEqual(scrollView.ScrollableWidth, 0.0); Verify.AreEqual(scrollView.ScrollableHeight, 0.0); }); }
private void ResetView(ScrollView scrollView) { ScrollPresenter scrollPresenter = ScrollViewTestHooks.GetScrollPresenterPart(scrollView); string scrollPresenterId = (VisualTreeHelper.GetParent(scrollPresenter) as FrameworkElement).Name + "." + scrollPresenter.Name; int viewChangeId = scrollPresenter.ScrollTo(0.0, 0.0, new ScrollingScrollOptions(AnimationMode.Disabled, SnapPointsMode.Ignore)).OffsetsChangeId; this.fullLogs.Add(scrollPresenterId + " ScrollTo requested. Id=" + viewChangeId); viewChangeId = scrollPresenter.ZoomTo(1.0f, System.Numerics.Vector2.Zero, new ScrollingZoomOptions(AnimationMode.Disabled, SnapPointsMode.Ignore)).ZoomFactorChangeId; this.fullLogs.Add(scrollPresenterId + " ZoomTo requested. Id=" + viewChangeId); chkLogUpdated.IsChecked = false; if (scrollView == this.scrollView52) { scrollView52ZoomFactorChangeId = viewChangeId; } }
private void CmbIgnoredInputKind_SelectionChanged(object sender, SelectionChangedEventArgs e) { InputKind ignoredInputKind; ScrollView scrollView = SelectedScrollView; switch (cmbIgnoredInputKind.SelectedIndex) { case 0: return; case 1: ignoredInputKind = InputKind.None; break; case 2: ignoredInputKind = InputKind.Touch; break; case 3: ignoredInputKind = InputKind.Pen; break; case 4: ignoredInputKind = InputKind.MouseWheel; break; case 5: ignoredInputKind = InputKind.Keyboard; break; case 6: ignoredInputKind = InputKind.Gamepad; break; default: ignoredInputKind = InputKind.All; break; } scrollView.IgnoredInputKind = ignoredInputKind; }
private void ScrollView_ScrollCompleted(ScrollView sender, ScrollingScrollCompletedEventArgs args) { AppendAsyncEventMessage($"ScrollView.ScrollCompleted OffsetsChangeId={args.ScrollInfo.OffsetsChangeId}"); }
private void ScrollView_ZoomAnimationStarting(ScrollView sender, ScrollingZoomAnimationStartingEventArgs args) { AppendAsyncEventMessage($"ScrollView.ZoomAnimationStarting ZoomFactorChangeId={args.ZoomInfo.ZoomFactorChangeId}, CenterPoint={args.CenterPoint}"); }
private void ScrollView_ScrollAnimationStarting(ScrollView sender, ScrollingScrollAnimationStartingEventArgs args) { AppendAsyncEventMessage($"ScrollView.ScrollAnimationStarting OffsetsChangeId={args.ScrollInfo.OffsetsChangeId}"); }
private void ScrollView_ViewChanged(ScrollView sender, object args) { AppendAsyncEventMessage($"ScrollView.ViewChanged HorizontalOffset={sender.HorizontalOffset.ToString()}, VerticalOffset={sender.VerticalOffset}, ZoomFactor={sender.ZoomFactor}"); }
private void ScrollView_StateChanged(ScrollView sender, object args) { AppendAsyncEventMessage($"ScrollView.StateChanged {sender.State.ToString()}"); }
private void ScrollView_ExtentChanged(ScrollView sender, object args) { AppendAsyncEventMessage($"ScrollView.ExtentChanged ExtentWidth={sender.ExtentWidth}, ExtentHeight={sender.ExtentHeight}"); }
public void VerifyAnchorCandidateRegistration() { if (PlatformConfiguration.IsOSVersionLessThan(OSVersion.Redstone2)) { Log.Warning("Test is disabled on pre-RS2 because ScrollView not supported pre-RS2"); return; } using (PrivateLoggingHelper privateSVLoggingHelper = new PrivateLoggingHelper("ScrollView", "ScrollPresenter")) { int expectedAnchorCandidatesCount = 0; ScrollPresenter scrollPresenter = null; ScrollView scrollView = null; Rectangle rectangleScrollViewContent = null; AutoResetEvent scrollViewLoadedEvent = new AutoResetEvent(false); AutoResetEvent scrollViewAnchorRequestedEvent = new AutoResetEvent(false); RunOnUIThread.Execute(() => { rectangleScrollViewContent = new Rectangle(); scrollView = new ScrollView(); scrollView.HorizontalAnchorRatio = 0.1; SetupDefaultUI(scrollView, rectangleScrollViewContent, scrollViewLoadedEvent); scrollView.AnchorRequested += (ScrollView sender, ScrollingAnchorRequestedEventArgs args) => { Log.Comment("ScrollView.AnchorRequested event handler. args.AnchorCandidates.Count: " + args.AnchorCandidates.Count); Verify.IsNull(args.AnchorElement); Verify.AreEqual(expectedAnchorCandidatesCount, args.AnchorCandidates.Count); scrollViewAnchorRequestedEvent.Set(); }; }); WaitForEvent("Waiting for Loaded event", scrollViewLoadedEvent); RunOnUIThread.Execute(() => { Log.Comment("Accessing inner ScrollPresenter control"); scrollPresenter = ScrollViewTestHooks.GetScrollPresenterPart(scrollView); Log.Comment("Registering Rectangle as anchor candidate"); scrollView.RegisterAnchorCandidate(rectangleScrollViewContent); expectedAnchorCandidatesCount = 1; Log.Comment("Forcing ScrollPresenter layout"); scrollPresenter.InvalidateArrange(); }); WaitForEvent("Waiting for AnchorRequested event", scrollViewAnchorRequestedEvent); RunOnUIThread.Execute(() => { Log.Comment("Unregistering Rectangle as anchor candidate"); scrollView.UnregisterAnchorCandidate(rectangleScrollViewContent); expectedAnchorCandidatesCount = 0; Log.Comment("Forcing ScrollPresenter layout"); scrollPresenter.InvalidateArrange(); }); WaitForEvent("Waiting for AnchorRequested event", scrollViewAnchorRequestedEvent); } }
private void VerifyVisualStates(ScrollBarVisibility scrollBarVisibility, bool autoHideScrollControllers) { using (PrivateLoggingHelper privateSVLoggingHelper = new PrivateLoggingHelper("ScrollView")) { ScrollView scrollView = null; RunOnUIThread.Execute(() => { MUXControlsTestHooks.LoggingMessage += MUXControlsTestHooks_LoggingMessageForVisualStateChange; m_scrollViewVisualStateCounts = new ScrollViewVisualStateCounts(); scrollView = new ScrollView(); }); using (ScrollViewTestHooksHelper scrollViewTestHooksHelper = new ScrollViewTestHooksHelper(scrollView, autoHideScrollControllers)) { Rectangle rectangleScrollViewContent = null; AutoResetEvent scrollViewLoadedEvent = new AutoResetEvent(false); AutoResetEvent scrollViewUnloadedEvent = new AutoResetEvent(false); RunOnUIThread.Execute(() => { rectangleScrollViewContent = new Rectangle(); scrollView.HorizontalScrollBarVisibility = scrollBarVisibility; scrollView.VerticalScrollBarVisibility = scrollBarVisibility; SetupDefaultUI( scrollView: scrollView, rectangleScrollViewContent: rectangleScrollViewContent, scrollViewLoadedEvent: scrollViewLoadedEvent, scrollViewUnloadedEvent: scrollViewUnloadedEvent, setAsContentRoot: true, useParentGrid: true); }); WaitForEvent("Waiting for Loaded event", scrollViewLoadedEvent); RunOnUIThread.Execute(() => { MUXControlsTestHooks.LoggingMessage -= MUXControlsTestHooks_LoggingMessageForVisualStateChange; Log.Comment($"VerifyVisualStates: isEnabled:True, scrollBarVisibility:{scrollBarVisibility}, autoHideScrollControllers:{autoHideScrollControllers}"); VerifyVisualStates( expectedMouseIndicatorStateCount: autoHideScrollControllers ? 0u : (scrollBarVisibility == ScrollBarVisibility.Auto ? 2u : 3u), expectedTouchIndicatorStateCount: 0, expectedNoIndicatorStateCount: autoHideScrollControllers ? (scrollBarVisibility == ScrollBarVisibility.Auto ? 2u : 3u) : 0u, expectedScrollBarsSeparatorCollapsedStateCount: autoHideScrollControllers ? (scrollBarVisibility == ScrollBarVisibility.Auto ? 1u : 3u) : 0u, expectedScrollBarsSeparatorCollapsedDisabledStateCount: 0, expectedScrollBarsSeparatorExpandedStateCount: autoHideScrollControllers ? 0u : (scrollBarVisibility == ScrollBarVisibility.Auto ? 1u : 3u), expectedScrollBarsSeparatorDisplayedWithoutAnimationStateCount: 0, expectedScrollBarsSeparatorExpandedWithoutAnimationStateCount: 0, expectedScrollBarsSeparatorCollapsedWithoutAnimationStateCount: 0); m_scrollViewVisualStateCounts.ResetStateCounts(); MUXControlsTestHooks.LoggingMessage += MUXControlsTestHooks_LoggingMessageForVisualStateChange; Log.Comment("Disabling ScrollView"); scrollView.IsEnabled = false; }); IdleSynchronizer.Wait(); RunOnUIThread.Execute(() => { MUXControlsTestHooks.LoggingMessage -= MUXControlsTestHooks_LoggingMessageForVisualStateChange; Log.Comment($"VerifyVisualStates: isEnabled:False, scrollBarVisibility:{scrollBarVisibility}, autoHideScrollControllers:{autoHideScrollControllers}"); VerifyVisualStates( expectedMouseIndicatorStateCount: autoHideScrollControllers ? 0u : (scrollBarVisibility == ScrollBarVisibility.Auto ? 1u : 3u), expectedTouchIndicatorStateCount: 0, expectedNoIndicatorStateCount: autoHideScrollControllers ? (scrollBarVisibility == ScrollBarVisibility.Auto ? 1u : 3u) : 0u, expectedScrollBarsSeparatorCollapsedStateCount: 0, expectedScrollBarsSeparatorCollapsedDisabledStateCount: scrollBarVisibility == ScrollBarVisibility.Auto ? 0u : 3u, expectedScrollBarsSeparatorExpandedStateCount: 0, expectedScrollBarsSeparatorDisplayedWithoutAnimationStateCount: 0, expectedScrollBarsSeparatorExpandedWithoutAnimationStateCount: 0, expectedScrollBarsSeparatorCollapsedWithoutAnimationStateCount: 0); m_scrollViewVisualStateCounts.ResetStateCounts(); MUXControlsTestHooks.LoggingMessage += MUXControlsTestHooks_LoggingMessageForVisualStateChange; Log.Comment("Enabling ScrollView"); scrollView.IsEnabled = true; }); IdleSynchronizer.Wait(); RunOnUIThread.Execute(() => { MUXControlsTestHooks.LoggingMessage -= MUXControlsTestHooks_LoggingMessageForVisualStateChange; Log.Comment($"VerifyVisualStates: isEnabled:True, scrollBarVisibility:{scrollBarVisibility}, autoHideScrollControllers:{autoHideScrollControllers}"); VerifyVisualStates( expectedMouseIndicatorStateCount: autoHideScrollControllers ? 0u : 3u, expectedTouchIndicatorStateCount: 0, expectedNoIndicatorStateCount: autoHideScrollControllers ? 3u : 0u, expectedScrollBarsSeparatorCollapsedStateCount: autoHideScrollControllers ? (scrollBarVisibility == ScrollBarVisibility.Auto ? 2u : 3u) : 0u, expectedScrollBarsSeparatorCollapsedDisabledStateCount: 0, expectedScrollBarsSeparatorExpandedStateCount: autoHideScrollControllers ? 0u : (scrollBarVisibility == ScrollBarVisibility.Auto ? 2u : 3u), expectedScrollBarsSeparatorDisplayedWithoutAnimationStateCount: 0, expectedScrollBarsSeparatorExpandedWithoutAnimationStateCount: 0, expectedScrollBarsSeparatorCollapsedWithoutAnimationStateCount: 0); Log.Comment("Resetting window content"); Content = null; m_scrollViewVisualStateCounts = null; }); WaitForEvent("Waiting for Unloaded event", scrollViewUnloadedEvent); } } }
public void VerifyScrollPresenterAttachedProperties() { if (PlatformConfiguration.IsOSVersionLessThan(OSVersion.Redstone2)) { Log.Warning("Test is disabled on pre-RS2 because ScrollView not supported pre-RS2"); return; } using (PrivateLoggingHelper privateSVLoggingHelper = new PrivateLoggingHelper("ScrollView", "ScrollPresenter")) { ScrollView scrollView = null; Rectangle rectangleScrollViewContent = null; AutoResetEvent scrollViewLoadedEvent = new AutoResetEvent(false); AutoResetEvent scrollViewUnloadedEvent = new AutoResetEvent(false); RunOnUIThread.Execute(() => { rectangleScrollViewContent = new Rectangle(); scrollView = new ScrollView(); SetupDefaultUI(scrollView, rectangleScrollViewContent, scrollViewLoadedEvent, scrollViewUnloadedEvent); }); WaitForEvent("Waiting for Loaded event", scrollViewLoadedEvent); RunOnUIThread.Execute(() => { Log.Comment("Setting ScrollPresenter-cloned properties to non-default values"); scrollView.IgnoredInputKind = InputKind.MouseWheel | InputKind.Pen; scrollView.ContentOrientation = ContentOrientation.Horizontal; scrollView.HorizontalScrollChainingMode = ChainingMode.Always; scrollView.VerticalScrollChainingMode = ChainingMode.Never; scrollView.HorizontalScrollRailingMode = RailingMode.Disabled; scrollView.VerticalScrollRailingMode = RailingMode.Disabled; scrollView.HorizontalScrollMode = ScrollMode.Enabled; scrollView.VerticalScrollMode = ScrollMode.Disabled; scrollView.ZoomMode = ZoomMode.Enabled; scrollView.ZoomChainingMode = ChainingMode.Never; scrollView.MinZoomFactor = 2.0; scrollView.MaxZoomFactor = 8.0; Log.Comment("Verifying ScrollPresenter-cloned non-default properties"); Verify.AreEqual(scrollView.IgnoredInputKind, InputKind.MouseWheel | InputKind.Pen); Verify.AreEqual(scrollView.ContentOrientation, ContentOrientation.Horizontal); Verify.AreEqual(scrollView.HorizontalScrollChainingMode, ChainingMode.Always); Verify.AreEqual(scrollView.VerticalScrollChainingMode, ChainingMode.Never); Verify.AreEqual(scrollView.HorizontalScrollRailingMode, RailingMode.Disabled); Verify.AreEqual(scrollView.VerticalScrollRailingMode, RailingMode.Disabled); Verify.AreEqual(scrollView.HorizontalScrollMode, ScrollMode.Enabled); Verify.AreEqual(scrollView.VerticalScrollMode, ScrollMode.Disabled); #if USE_SCROLLMODE_AUTO Verify.AreEqual(scrollView.ComputedHorizontalScrollMode, ScrollMode.Enabled); Verify.AreEqual(scrollView.ComputedVerticalScrollMode, ScrollMode.Disabled); #endif Verify.AreEqual(scrollView.ZoomMode, ZoomMode.Enabled); Verify.AreEqual(scrollView.ZoomChainingMode, ChainingMode.Never); Verify.IsGreaterThan(scrollView.MinZoomFactor, 2.0 - c_epsilon); Verify.IsLessThan(scrollView.MinZoomFactor, 2.0 + c_epsilon); Verify.IsGreaterThan(scrollView.MaxZoomFactor, 8.0 - c_epsilon); Verify.IsLessThan(scrollView.MaxZoomFactor, 8.0 + c_epsilon); Log.Comment("Resetting window content and ScrollView"); Content = null; scrollView = null; }); WaitForEvent("Waiting for Unloaded event", scrollViewUnloadedEvent); IdleSynchronizer.Wait(); Log.Comment("Garbage collecting..."); GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); Log.Comment("Done"); } }
private void ScrollView_ZoomCompleted(ScrollView sender, ScrollingZoomCompletedEventArgs args) { AppendAsyncEventMessage($"ScrollView.ZoomCompleted ZoomFactorChangeId={args.ZoomInfo.ZoomFactorChangeId}"); }
private void SetupDefaultUI( ScrollView scrollView, Rectangle rectangleScrollViewContent = null, AutoResetEvent scrollViewLoadedEvent = null, AutoResetEvent scrollViewUnloadedEvent = null, bool setAsContentRoot = true, bool useParentGrid = false) { Log.Comment("Setting up default UI with ScrollView" + (rectangleScrollViewContent == null ? "" : " and Rectangle")); LinearGradientBrush twoColorLGB = new LinearGradientBrush() { StartPoint = new Point(0, 0), EndPoint = new Point(1, 1) }; GradientStop brownGS = new GradientStop() { Color = Colors.Brown, Offset = 0.0 }; twoColorLGB.GradientStops.Add(brownGS); GradientStop orangeGS = new GradientStop() { Color = Colors.Orange, Offset = 1.0 }; twoColorLGB.GradientStops.Add(orangeGS); if (rectangleScrollViewContent != null) { rectangleScrollViewContent.Width = c_defaultUIScrollViewContentWidth; rectangleScrollViewContent.Height = c_defaultUIScrollViewContentHeight; rectangleScrollViewContent.Fill = twoColorLGB; } Verify.IsNotNull(scrollView); scrollView.Name = "scrollView"; scrollView.Width = c_defaultUIScrollViewWidth; scrollView.Height = c_defaultUIScrollViewHeight; if (rectangleScrollViewContent != null) { scrollView.Content = rectangleScrollViewContent; } if (scrollViewLoadedEvent != null) { scrollView.Loaded += (object sender, RoutedEventArgs e) => { Log.Comment("ScrollView.Loaded event handler"); scrollViewLoadedEvent.Set(); }; } if (scrollViewUnloadedEvent != null) { scrollView.Unloaded += (object sender, RoutedEventArgs e) => { Log.Comment("ScrollView.Unloaded event handler"); scrollViewUnloadedEvent.Set(); }; } Grid parentGrid = null; if (useParentGrid) { parentGrid = new Grid(); parentGrid.Width = c_defaultUIScrollViewWidth * 3; parentGrid.Height = c_defaultUIScrollViewHeight * 3; scrollView.HorizontalAlignment = HorizontalAlignment.Left; scrollView.VerticalAlignment = VerticalAlignment.Top; parentGrid.Children.Add(scrollView); } if (setAsContentRoot) { Log.Comment("Setting window content"); if (useParentGrid) { Content = parentGrid; } else { Content = scrollView; } } }
private void CmbShowScrollView_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (this.scrollView11 != null) { if (cmbShowScrollView.SelectedIndex == 0) { this.scrollView11.Visibility = Visibility.Visible; this.scrollView21.Visibility = Visibility.Visible; this.scrollView31.Visibility = Visibility.Visible; this.scrollView41.Visibility = Visibility.Visible; this.scrollView51.Visibility = Visibility.Visible; this.scrollView12.Visibility = Visibility.Visible; this.scrollView22.Visibility = Visibility.Visible; this.scrollView32.Visibility = Visibility.Visible; this.scrollView42.Visibility = Visibility.Visible; this.scrollView52.Visibility = Visibility.Visible; this.scrollView11.Width = double.NaN; this.scrollView21.Width = double.NaN; this.scrollView31.Width = double.NaN; this.scrollView41.Width = double.NaN; this.scrollView51.Width = double.NaN; this.scrollView12.Width = double.NaN; this.scrollView22.Width = double.NaN; this.scrollView32.Width = double.NaN; this.scrollView42.Width = double.NaN; this.scrollView52.Width = double.NaN; this.scrollView11.Height = double.NaN; this.scrollView21.Height = double.NaN; this.scrollView31.Height = double.NaN; this.scrollView41.Height = double.NaN; this.scrollView51.Height = double.NaN; this.scrollView12.Height = double.NaN; this.scrollView22.Height = double.NaN; this.scrollView32.Height = double.NaN; this.scrollView42.Height = double.NaN; this.scrollView52.Height = double.NaN; for (int rowIndex = 2; rowIndex < 4; rowIndex++) { this.rootGrid.RowDefinitions[rowIndex].Height = new GridLength(1, GridUnitType.Star); } for (int columnIndex = 0; columnIndex < 5; columnIndex++) { this.rootGrid.ColumnDefinitions[columnIndex].Width = new GridLength(1, GridUnitType.Star); } cmbIgnoredInputKind.IsEnabled = false; cmbIgnoredInputKind.SelectedIndex = 0; } else { this.scrollView11.Visibility = Visibility.Collapsed; this.scrollView21.Visibility = Visibility.Collapsed; this.scrollView31.Visibility = Visibility.Collapsed; this.scrollView41.Visibility = Visibility.Collapsed; this.scrollView51.Visibility = Visibility.Collapsed; this.scrollView12.Visibility = Visibility.Collapsed; this.scrollView22.Visibility = Visibility.Collapsed; this.scrollView32.Visibility = Visibility.Collapsed; this.scrollView42.Visibility = Visibility.Collapsed; this.scrollView52.Visibility = Visibility.Collapsed; for (int rowIndex = 2; rowIndex < 4; rowIndex++) { this.rootGrid.RowDefinitions[rowIndex].Height = GridLength.Auto; } for (int columnIndex = 0; columnIndex < 5; columnIndex++) { this.rootGrid.ColumnDefinitions[columnIndex].Width = GridLength.Auto; } cmbIgnoredInputKind.IsEnabled = true; ScrollView scrollView = SelectedScrollView; scrollView.Visibility = Visibility.Visible; scrollView.Width = 300; scrollView.Height = 400; txtScrollPresenterHorizontalOffset.Text = scrollView.HorizontalOffset.ToString(); txtScrollPresenterVerticalOffset.Text = scrollView.VerticalOffset.ToString(); txtScrollPresenterZoomFactor.Text = scrollView.ZoomFactor.ToString(); switch (scrollView.IgnoredInputKind) { case InputKind.None: cmbIgnoredInputKind.SelectedIndex = 1; break; case InputKind.Touch: cmbIgnoredInputKind.SelectedIndex = 2; break; case InputKind.Pen: cmbIgnoredInputKind.SelectedIndex = 3; break; case InputKind.MouseWheel: cmbIgnoredInputKind.SelectedIndex = 4; break; case InputKind.Keyboard: cmbIgnoredInputKind.SelectedIndex = 5; break; case InputKind.Gamepad: cmbIgnoredInputKind.SelectedIndex = 6; break; case InputKind.All: cmbIgnoredInputKind.SelectedIndex = 7; break; default: cmbIgnoredInputKind.SelectedIndex = 0; break; } } } }