Windows Phone 8中的问题:错误2 Silverlight项目中不支持SlideView

时间:2014-07-07 06:35:40

标签: windows-phone-8

在尝试在我的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: 

此致 塞巴斯蒂安

3 个答案:

答案 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