summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamantha Houts <samantha@teamredwall.com>2016-10-26 12:02:14 -0700
committerRui Marinho <me@ruimarinho.net>2016-10-26 20:02:14 +0100
commitfc74c65e8ec5e733e6e24a4db968dee430c01f73 (patch)
treee66d2079c20e7c8dfade4086806d3e37abdd20cf
parenta0fb20a075e89ddb8763faa1306f07041ea3d4fe (diff)
downloadxamarin-forms-fc74c65e8ec5e733e6e24a4db968dee430c01f73.tar.gz
xamarin-forms-fc74c65e8ec5e733e6e24a4db968dee430c01f73.tar.bz2
xamarin-forms-fc74c65e8ec5e733e6e24a4db968dee430c01f73.zip
[Win] Toolbar placement works with initial value (#488)
* Defer UpdateToolbarPlacement until CommandBar is in the control hierarchy * Cleanup
-rw-r--r--Xamarin.Forms.Core/PlatformConfiguration/WindowsSpecific/Page.cs2
-rw-r--r--Xamarin.Forms.Platform.UAP/MasterDetailControl.cs7
-rw-r--r--Xamarin.Forms.Platform.WinRT.Phone/FormsPivot.cs8
-rw-r--r--Xamarin.Forms.Platform.WinRT/PageControl.xaml.cs8
4 files changed, 22 insertions, 3 deletions
diff --git a/Xamarin.Forms.Core/PlatformConfiguration/WindowsSpecific/Page.cs b/Xamarin.Forms.Core/PlatformConfiguration/WindowsSpecific/Page.cs
index 59e53b5f..fd9503b1 100644
--- a/Xamarin.Forms.Core/PlatformConfiguration/WindowsSpecific/Page.cs
+++ b/Xamarin.Forms.Core/PlatformConfiguration/WindowsSpecific/Page.cs
@@ -14,7 +14,7 @@ namespace Xamarin.Forms.PlatformConfiguration.WindowsSpecific
public static readonly BindableProperty ToolbarPlacementProperty =
BindableProperty.CreateAttached("ToolbarPlacement", typeof(ToolbarPlacement),
- typeof(Page), ToolbarPlacement.Default);
+ typeof(FormsElement), ToolbarPlacement.Default);
public static ToolbarPlacement GetToolbarPlacement(BindableObject element)
{
diff --git a/Xamarin.Forms.Platform.UAP/MasterDetailControl.cs b/Xamarin.Forms.Platform.UAP/MasterDetailControl.cs
index 51f737f8..dddd0ba6 100644
--- a/Xamarin.Forms.Platform.UAP/MasterDetailControl.cs
+++ b/Xamarin.Forms.Platform.UAP/MasterDetailControl.cs
@@ -239,6 +239,13 @@ namespace Xamarin.Forms.Platform.UWP
_bottomCommandBarArea = GetTemplateChild("BottomCommandBarArea") as Border;
_topCommandBarArea = GetTemplateChild("TopCommandBarArea") as Border;
+ if (_commandBar != null && _bottomCommandBarArea != null && _topCommandBarArea != null)
+ {
+ // We have to wait for the command bar to load so that it'll be in the control hierarchy
+ // otherwise we can't properly move it to wherever the toolbar is supposed to be
+ _commandBar.Loaded += (sender, args) => UpdateToolbarPlacement();
+ }
+
UpdateToolbarPlacement();
UpdateMode();
diff --git a/Xamarin.Forms.Platform.WinRT.Phone/FormsPivot.cs b/Xamarin.Forms.Platform.WinRT.Phone/FormsPivot.cs
index b06acb1f..68586abc 100644
--- a/Xamarin.Forms.Platform.WinRT.Phone/FormsPivot.cs
+++ b/Xamarin.Forms.Platform.WinRT.Phone/FormsPivot.cs
@@ -77,7 +77,13 @@ namespace Xamarin.Forms.Platform.WinRT
#if WINDOWS_UWP
_bottomCommandBarArea = GetTemplateChild("BottomCommandBarArea") as Border;
_topCommandBarArea = GetTemplateChild("TopCommandBarArea") as Border;
- UpdateToolbarPlacement();
+
+ if (_commandBar != null && _bottomCommandBarArea != null && _topCommandBarArea != null)
+ {
+ // We have to wait for the command bar to load so that it'll be in the control hierarchy
+ // otherwise we can't properly move it to wherever the toolbar is supposed to be
+ _commandBar.Loaded += (sender, args) => UpdateToolbarPlacement();
+ }
#endif
TaskCompletionSource<CommandBar> tcs = _commandBarTcs;
diff --git a/Xamarin.Forms.Platform.WinRT/PageControl.xaml.cs b/Xamarin.Forms.Platform.WinRT/PageControl.xaml.cs
index 7be51c05..a57b6749 100644
--- a/Xamarin.Forms.Platform.WinRT/PageControl.xaml.cs
+++ b/Xamarin.Forms.Platform.WinRT/PageControl.xaml.cs
@@ -150,7 +150,13 @@ namespace Xamarin.Forms.Platform.WinRT
#if WINDOWS_UWP
_bottomCommandBarArea = GetTemplateChild("BottomCommandBarArea") as Border;
_topCommandBarArea = GetTemplateChild("TopCommandBarArea") as Border;
- UpdateToolbarPlacement();
+
+ if (_commandBar != null && _bottomCommandBarArea != null && _topCommandBarArea != null)
+ {
+ // We have to wait for the command bar to load so that it'll be in the control hierarchy
+ // otherwise we can't properly move it to wherever the toolbar is supposed to be
+ _commandBar.Loaded += (sender, args) => UpdateToolbarPlacement();
+ }
#endif
TaskCompletionSource<CommandBar> tcs = _commandBarTcs;