小编Luk*_*uke的帖子

在Windows 8 App中弹出导航堆栈页面

在页面之间导航时,我发现有一些功能可让您返回/转发或返回"主页"页面.但是,我需要的是能够返回但跳过用户不应再访问的页面.我四处搜索,发现以下内容:http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/3819f389-3bfc-4c59-a919-272927fc9229

我尝试使用GetNavigationStack,但由于无法序列化而导致失败,因此我作为NavigationParameter传递了对象.我不得不使用一个元组来传递2个参数,但这不能被序列化,因此我无法让导航堆栈进行编辑并手动删除页面.

然后我找到了这个WinRT - 如何忽略或删除导航历史中的页面,并认为我可以包含一个布尔值,如果要跳过页面,可以设置该值

LayoutAwarePage.cs(所有屏幕继承自,由Visual Studio生成的类)我添加了protected bool CanGoBackToThisPage { get; set; }哪些可以设置,如果你不想访问这个页面,但也有一个问题,因为有些时候我不知道你是否想要成为能够再次访问页面,直到你在当前页面上做了一些事情.我认为你不能做类似的事情previousFrame.CanGoBackToThisPage = true.此外,Frame您可以访问的对象(我认为)不能访问实际的页面对象,而是一些摘要对象,而我不知道如何将此布尔值添加到该摘要对象中.

有谁知道从导航堆栈中删除上一页/当前页面的简单方法?这似乎是一个非常普遍的问题,所以我很难想到微软没有给我们一些方法.

谢谢

.net c# microsoft-metro windows-8

7
推荐指数
1
解决办法
5201
查看次数

在Windows 8应用程序中的反思

我是单元测试一个类,里面有2个私有成员变量.我创建了一个继承自我正在测试的类的类.

起初我只是创建了我想要访问的变量,protected但我认为如果我可以将它们保密并使用反射来访问它们会很酷.我用Google搜索并找到了各种文章(和问题在这里(http://stackoverflow.com/questions/4097682/c-sharp-use-reflection-to-get-a-private-member-variable-from-a-derived -class))和接受的答案不起作用.

链接的SO问题说:

// _commandCollection is an instance, private member
BindingFlags flags = BindingFlags.Instance | BindingFlags.NonPublic;

// Retrieve a FieldInfo instance corresponding to the field
FieldInfo field = GetType().GetField("_commandCollection", flags);

// Retrieve the value of the field, and cast as necessary
IDbCommand[] cc =(IDbCommand[])field.GetValue(this);
Run Code Online (Sandbox Code Playgroud)

但是,没有GetField()方法.我尝试了一种类似的方法,GetRuntimeField()但是没有用.

我的代码(在继承类中)是:

public List<BaseData> RealAllData
{
    get
    {
        // Use reflection to access the private variable
        FieldInfo field = GetType().GetRuntimeField("mAllData");
        return (List<BaseData>)field.GetValue(this);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果有人知道为什么这不起作用那么我将不胜感激.谢谢.

c# reflection windows-8 windows-runtime windows-store-apps

5
推荐指数
1
解决办法
2532
查看次数

没有为.winmd文件提供实施文件

我在VS2012中构建Windows 8 App项目时收到警告:

No implementation file was provided for the .winmd file 'C:\Users\luke\LApp\LApp\bin\x86\Debug\Bing.Maps.winmd'. To generate registration information in the app manifest, specify the 'Implementation' metadata on the .winmd reference item in the project file.
Run Code Online (Sandbox Code Playgroud)

我真的不知道提供什么其他信息.我用谷歌搜索,它没有提供任何相关的结果.它给出了一个链接:http://msdn.microsoft.com/en-us/library/hh708954.aspx但我不确定这是正确的.我很确定我有正确的参考资料:

在此输入图像描述

这是一个C#项目.我使用NuGet添加Bing Maps SDK,它可以在我的应用程序中运行 - 我可以拖动地图界面并在应用程序中使用它.这只是建筑时出现的警告,我不知道如何摆脱它.

任何帮助表示感谢,谢谢.

c# bing-maps windows-8

5
推荐指数
1
解决办法
2209
查看次数

Windows 8 XAML对象和Snapped View

所以我制作了一个应用程序并设置了布局,使其在纵向模式下显示正常.对于捕捉的视图,我创建了一个ListView,它包含相同对象的不同实例.此ListView最初是折叠的,然后当它更改为捕捉时,列表视图变为可见,并且纵向模式对象变为折叠状态.

这很好用,但由于它们是两组不同的对象,因此会影响用户体验.如果他们以纵向模式将文本输入到框中,然后切换到捕捉视图,则所有文本都将消失(因为它们将它放在现在折叠的文本框中).

问题是是否可以只改变元素的位置/大小,使它们只是在不同的地方是相同的对象,这取决于我们是否处于捕捉模式?

希望这很清楚.谢谢.

c# xaml microsoft-metro windows-8 winrt-xaml

3
推荐指数
1
解决办法
2266
查看次数