感觉就像我必须遗漏一些东西,但是当我为WinRT代码编写单元测试时,我无法找到任何可以使用的模拟对象框架.那里有任何支持WinRT的模拟框架吗?
我知道MoqRT,但据我所知,它在构建时执行codegen(虽然通过一个脆弱的声音集成,这不是实际构建过程的一部分),但它感觉更像是一个hack而不是一个实现.
DynamicMethod(轻量级代码生成背后的类)显然在WinRT中不可用.但似乎支持表达式树,包括它们的编译方法; 所以似乎模拟对象框架应该是可行的.
那里有任何WinRT模拟框架吗?
XAML StackPanel在单个方向上并排对齐控件.A WrapPanel类似但是TextWrapping="Wrap"在XAML中TextBox,当达到相应的高度或宽度时,控件"包裹"到下一列或行.

类似但不一样的是,WrapGrid包装内容,但是在统一的网格中.虽然VariableSizedWrapGrid允许容器中的不同物品.这两种都不WrapGrids能用在外面ItemsControl.所以,他们被取消资格.
当开发人员在Visual Studio中查看他们的本机XAML工具箱时,没有WrapPanel.WPF开发人员有一个WrapPanel他们可能正在寻找这个通用工具来解决他们的场景.所以,我要问:
有没有人知道XAML-WinRT中的WrapPanel?(虚拟化的那个怎么样?)
我正在尝试向UWP的SplitView控件(又名"汉堡包菜单")添加滑动手势,类似于Pivot控件的左/右滑动.如何设置手势以更改其显示模式?
在iOS 8及更高版本中,我可以使用UISplitViewController并设置presentsWithGesture属性来做到这一点,但在WinRT中没有类似的东西.
现在看完这篇博客后:http://blogs.msdn.com/b/cdndevs/archive/2015/07/10/uwp-new-controls-part-2-splitview.aspx,我意识到有DisplayMode属性在SplitView控件中,我应该使用VisualStateManager来改变它的状态但是如何使用vsm来平移左侧窗格?我不知道这可以通过vsm实现.
任何帮助/提示将不胜感激.
在WinRT演示之后,我对.net框架在Microsoft开发堆栈中的作用感到困惑.
是否有必要开发WinRT应用程序?
让我们说我想创建一种新的编程语言或者使用MS不支持的某种语言(Haskell,Java ......等等),但希望能够对Windows 8 metro/winRT进行编码.
我知道Metro UI中的所有应用都是沙盒.
我知道我可以用原生C++编程,所以我假设我也可以在C或汇编中完成.
但:
jit programming-languages microsoft-metro windows-8 windows-runtime
我开始使用Metro风格的应用程序(我知道我们不应该将它称为Metro,但我永远不会记得它应该被称为...),而我正在实现一个DelegateCommand用于MVVM 的类.在WPF中,ICommand.CanExecuteChanged事件通常像这样实现:
public event EventHandler CanExecuteChanged
{
add { CommandManager.RequerySuggested += value; }
remove { CommandManager.RequerySuggested -= value; }
}
Run Code Online (Sandbox Code Playgroud)
但是这个CommandManager类在WinRT中不存在......还有别的东西吗?或者我们是否应该自己明确触发此事件?
这是我的旧实现,用于获取Windows Universal 8.1的唯一DeviceID,但类型HardwareIdentification不再存在.
private static string GetId()
{
var token = HardwareIdentification.GetPackageSpecificToken(null);
var hardwareId = token.Id;
var dataReader = Windows.Storage.Streams.DataReader.FromBuffer(hardwareId);
byte[] bytes = new byte[hardwareId.Length];
dataReader.ReadBytes(bytes);
return BitConverter.ToString(bytes).Replace("-", "");
}
Run Code Online (Sandbox Code Playgroud) 在开发UWP应用程序时,我最近发现了很多内存泄漏,导致我的页面被GC收集.我的页面上有一个ContentPresenter,如:
<ContentControl Grid.Column="0" Grid.Row="1" Content="{x:Bind ViewModel.Schedule, Mode=OneWay}">
</ContentControl>
Run Code Online (Sandbox Code Playgroud)
删除内容后,或用动态{Binding}替换它 - 当我从中导航时收集页面.否则它会留在内存中.是错误还是我做错了什么?有没有办法释放并清除导航时的所有绑定?
更新: 它似乎被说成是微软内部的一个已知的问题在这里.但是,就我自己的测试/应用程序使用情况而言,x:Bind保留的数据仍会在一段时间后收集,例如,当您导航到相同的页面或创建相同的控件一段时间.我可以看到创建了新对象,但在某些时候收集了旧对象.
所以对我而言,它似乎并不是导致内存不足的严重问题,它只是不允许像动态绑定那样快速收集对象.
今天我将Windows 10 PC更新为Threshold 2.除了Visual Studio拒绝运行我的任何通用Windows 10项目(包括新项目)之外,更新还不错.
当我尝试运行应用程序时,我收到此消息:
无法激活Windows应用商店应用"{App}".{App name} .exe
进程已启动,但激活请求失败,错误为"应用程序
未启动".
我尝试了一切:
额外信息
对于UWP,可以轻松地将app本地文件夹中的所有文件作为:
IReadOnlyList<StorageFile> files = await ApplicationData.Current.LocalFolder.GetFilesAsync();
您现在可以迭代文件列表,甚至可以获得有关各个文件的更多信息.
我想为app文件夹添加类似的all-file-getter,例如,考虑存储app *.png文件的/ Assets文件夹.具有已知名称的单个文件没有问题; 我可以很容易地提到它:
StorageFile.GetFileFromApplicationUriAsync(new Uri(@"ms-appx:///Assets/StoreLogo.png"))
因此,我的问题是,在app文件夹中获取所有文件是否类似,例如/ Assets文件夹?从逻辑上讲,它应该是类似StorageFile.GetFilesFromApplicationFolderUriAsync(new Uri(@"ms-appx:///Assets"))但不知道如果存在上面显示的LocalFolder的等效物.
windows-runtime ×10
c# ×6
uwp ×4
windows-10 ×4
windows-8 ×3
winrt-xaml ×3
.net ×1
architecture ×1
icommand ×1
jit ×1
mocking ×1
xaml ×1