diff --git a/samples/ControlCatalog/Pages/TransitioningContentControlPage.axaml b/samples/ControlCatalog/Pages/TransitioningContentControlPage.axaml
index 20cd78abd3..4e26141082 100644
--- a/samples/ControlCatalog/Pages/TransitioningContentControlPage.axaml
+++ b/samples/ControlCatalog/Pages/TransitioningContentControlPage.axaml
@@ -4,6 +4,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:vm="using:ControlCatalog.ViewModels"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
+ Height="{Binding $parent[ScrollViewer].Bounds.Height}"
x:DataType="vm:TransitioningContentControlPageViewModel"
x:CompileBindings="True"
x:Class="ControlCatalog.Pages.TransitioningContentControlPage">
@@ -11,25 +12,63 @@
+
+
+
+
The TransitioningContentControl control allows you to show a page transition whenever the Content changes.
-
-
- Select a transition
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/ControlCatalog/ViewModels/TransitioningContentControlPageViewModel.cs b/samples/ControlCatalog/ViewModels/TransitioningContentControlPageViewModel.cs
index edf3579ac9..98383e45c7 100644
--- a/samples/ControlCatalog/ViewModels/TransitioningContentControlPageViewModel.cs
+++ b/samples/ControlCatalog/ViewModels/TransitioningContentControlPageViewModel.cs
@@ -30,11 +30,13 @@ namespace ControlCatalog.ViewModels
}
SelectedImage = Images[0];
- SelectedTransition = PageTransitions[0];
+ SelectedTransition = PageTransitions[1];
}
public List PageTransitions { get; } = new List()
{
+ new PageTransition("None", null),
+ new PageTransition("CrossFade", new CrossFade(TimeSpan.FromMilliseconds(500))),
new PageTransition("Slide horizontally", new PageSlide(TimeSpan.FromMilliseconds(500), PageSlide.SlideAxis.Horizontal)),
new PageTransition("Slide vertically", new PageSlide(TimeSpan.FromMilliseconds(500), PageSlide.SlideAxis.Vertical))
};
@@ -65,6 +67,38 @@ namespace ControlCatalog.ViewModels
set { this.RaiseAndSetIfChanged(ref _SelectedTransition, value); }
}
+
+
+ private bool _ClipToBounds;
+
+ ///
+ /// Gets or sets if the content should be clipped to bounds
+ ///
+ public bool ClipToBounds
+ {
+ get { return _ClipToBounds; }
+ set { this.RaiseAndSetIfChanged(ref _ClipToBounds, value); }
+ }
+
+
+ private int _Duration = 500;
+
+ ///
+ /// Gets or Sets the duration
+ ///
+ public int Duration
+ {
+ get { return _Duration; }
+ set
+ {
+ this.RaiseAndSetIfChanged(ref _Duration , value);
+
+ PageTransitions[1].Transition = new CrossFade(TimeSpan.FromMilliseconds(value));
+ PageTransitions[2].Transition = new PageSlide(TimeSpan.FromMilliseconds(value), PageSlide.SlideAxis.Horizontal);
+ PageTransitions[3].Transition = new PageSlide(TimeSpan.FromMilliseconds(value), PageSlide.SlideAxis.Vertical);
+ }
+ }
+
public void NextImage()
{
var index = Images.IndexOf(SelectedImage) + 1;
@@ -90,7 +124,7 @@ namespace ControlCatalog.ViewModels
}
}
- public class PageTransition
+ public class PageTransition : ViewModelBase
{
public PageTransition(string displayTitle, IPageTransition transition)
{
@@ -99,7 +133,18 @@ namespace ControlCatalog.ViewModels
}
public string DisplayTitle { get; }
- public IPageTransition Transition { get; }
+
+
+ private IPageTransition _Transition;
+
+ ///
+ /// Gets or sets the transition
+ ///
+ public IPageTransition Transition
+ {
+ get { return _Transition; }
+ set { this.RaiseAndSetIfChanged(ref _Transition, value); }
+ }
public override string ToString()
{