全部使用一个XAML - Universal App

时间:2014-07-23 07:56:31

标签: c# xaml windows-8.1 windows-phone-8.1 win-universal-app

我正在研究我的拳头通用应用程序。我想分享所有xaml文件,而不仅仅是libs并使用...

#if WINDOWS_PHONE_APP
#endif

...特殊例外

所以第一步是使用以下内容隐藏WP的状态栏。

#if WINDOWS_PHONE_APP
private async static void HideStatusBar()
{
  Windows.UI.ViewManagement.StatusBar statusbar = Windows.UI.ViewManagement.StatusBar.GetForCurrentView();
  await statusBar.HideAsync();
}
#endif 

但它不起作用。

共享项目没有References文件夹。通常可以在共享项目中使用windows和windows phone项目的references文件夹中的元素作为xaml。否则我必须为每个平台使用单独的xaml文件吗?

3 个答案:

答案 0 :(得分:1)

据我所知,在Universal应用中,您只能共享DataModel和其他文件,例如图片等。但设计应该分开进行。即:正如你所说,你必须分别定义xaml页面。

有关更多信息,请参阅:

http://msdn.microsoft.com/en-us/library/windows/apps/dn609832.aspx

http://channel9.msdn.com/Series/Building-Apps-for-Windows-Phone-8-1/22

希望它有所帮助!

答案 1 :(得分:0)

在此答案中,共享项目无法共享引用...您需要在每个项目中添加引用' head'你的目标。至于为什么你的代码不起作用,你并不清楚该函数的调用位置。它看起来是正确的,但是谁在调用HideStatusBar,或者你是如何表明它不起作用的?

答案 2 :(得分:0)

可以使用一个视图(XAML文件),有时候很有意义;例如见http://www.wintellect.com/devcenter/jprosise/sharing-views-in-universal-apps

我刚刚创建了一个通用应用程序,将 MainPage.xaml 移动到共享项目,并将其从Windows 8.1和Windows Phone 8.1项目中删除。

我没有隐藏状态栏但是使用了

#if WINDOWS_PHONE_APP
ColumnDefinition1.Width = new Windows.UI.Xaml.GridLength(0);
#endif

更改网格的列定义。