在尝试在我的Windows Phone 8应用程序中实现滑动菜单(像'Facebook')时,我遇到了一些问题。
当我在app.xaml中添加以下代码时,它会显示以下问题
<Application.RootVisual>
<library:SlideApplicationFrame Header="ManageIT"
Background="White">
<!--<library:SlideApplicationFrame.LeftContent>
<pages:LeftView />
</library:SlideApplicationFrame.LeftContent>-->
<!--<library:SlideApplicationFrame.RightContent>
<pages:RightView />
</library:SlideApplicationFrame.RightContent>-->
</library:SlideApplicationFrame>
</Application.RootVisual>
以下是例外情况。
Error 1 Nested properties are not supported: Application.RootVisual.
Error 2 The attachable property 'RootVisual' was not found in type 'Application'.
Error 3 Unexpected PROPERTYELEMENT in parse rule PropertyElement ::= . PROPERTYELEMENT Content? ENDTAG..
任何人都可以帮我解决这个问题吗? 是因为没有完成对System.Windows.UIElement的引用吗?
更新1
我已撤消上述更改,并在使用包管理器控制台安装slideview后在mainpage.xaml中添加以下内容
Install-Package SlideView
这是代码......
<controls:SlideView>
<Grid Background="Teal"
Width="400" />
<Grid Background="Tomato" />
<Grid Background="LightYellow" />
<Grid Background="YellowGreen"
Width="400"/>
</controls:SlideView>
但我有另外一组构建错误如下......
错误1未定义名称空间前缀“controls”。
错误2 Silverlight项目不支持SlideView。
错误3未定义名称空间前缀“controls”。
错误4 未找到类型'控件:SlideView'。确认您不是 缺少程序集引用,并且所有引用的程序集都有 已建成。
更新2
修复了上述问题,但我有一些运行时异常如下......
System.InvalidOperationException was unhandled by user code
HResult=-2146233079
Message=Operation is not valid due to the current state of the object.
Source=Microsoft.Phone
StackTrace:
at Microsoft.Phone.Controls.PhoneApplicationFrame..ctor()
at slidingmenu.App.InitializePhoneApplication()
at slidingmenu.App..ctor()
InnerException:
此致 塞巴斯蒂安
答案 0 :(得分:0)
是否定义了xml命名空间?
xmlns:controls="clr-namespace:SlideView.Library;assembly=SlideView.Library"
xmlns:slideview3="clr-namespace:slideview3"
如果LeftView是您的控件之一。
<library:SlideApplicationFrame.LeftContent>
<slideview3:LeftView />
</library:SlideApplicationFrame.LeftContent>
答案 1 :(得分:0)
尝试将控件嵌套在父控件中,例如StackPanel
。很可能你搞砸了命名空间。我会怎么做?将我的代码与工作代码进行比较。 CodePlex提供example source for SlideView.下载它,看看你错过了什么。
答案 2 :(得分:0)
我的(MvvmCross-)应用程序中存在同样的问题。
我可以通过App.xaml.cs
中的代码创建RootFrame而不是在Xaml中添加它来解决此问题:
private void InitializePhoneApplication()
{
var slideApplicationFrame = new SlideApplicationFrame
{
LeftContent = new LeftView(),
RightContent = new RightView()
};
this.RootFrame = slideApplicationFrame;
this.RootVisual = this.RootFrame;
this.RootFrame.Navigated += this.CompleteInitializePhoneApplication;
// Handle navigation failures
this.RootFrame.NavigationFailed += this.RootFrameNavigationFailed;
}
...并删除了<Application.RootVisual>...</Application.RootVisual>
中的整个App.xaml
。