summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Platform.WinRT/ListGroupHeaderPresenter.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Xamarin.Forms.Platform.WinRT/ListGroupHeaderPresenter.cs')
-rw-r--r--Xamarin.Forms.Platform.WinRT/ListGroupHeaderPresenter.cs46
1 files changed, 46 insertions, 0 deletions
diff --git a/Xamarin.Forms.Platform.WinRT/ListGroupHeaderPresenter.cs b/Xamarin.Forms.Platform.WinRT/ListGroupHeaderPresenter.cs
new file mode 100644
index 00000000..45818977
--- /dev/null
+++ b/Xamarin.Forms.Platform.WinRT/ListGroupHeaderPresenter.cs
@@ -0,0 +1,46 @@
+´╗┐using Windows.UI.Xaml;
+using Windows.UI.Xaml.Controls;
+using Windows.UI.Xaml.Input;
+using Windows.UI.Xaml.Media;
+
+#if WINDOWS_UWP
+
+namespace Xamarin.Forms.Platform.UWP
+#else
+
+namespace Xamarin.Forms.Platform.WinRT
+#endif
+{
+ public class ListGroupHeaderPresenter : Windows.UI.Xaml.Controls.ContentPresenter
+ {
+ void OnTapped(object sender, TappedRoutedEventArgs tappedRoutedEventArgs)
+ {
+ var element = VisualTreeHelper.GetParent(this) as FrameworkElement;
+ while (element != null)
+ {
+ var list = element as Windows.UI.Xaml.Controls.ListView;
+ if (list != null)
+ element = list.SemanticZoomOwner;
+
+ if (element == null)
+ break;
+
+ var zoom = element as SemanticZoom;
+ if (zoom != null)
+ {
+ zoom.ToggleActiveView();
+
+ var grid = zoom.ZoomedOutView as GridView;
+ if (grid != null)
+ {
+ grid.MakeVisible(new SemanticZoomLocation { Item = DataContext });
+ }
+
+ return;
+ }
+
+ element = VisualTreeHelper.GetParent(element) as FrameworkElement;
+ }
+ }
+ }
+} \ No newline at end of file