问题标签 [windows-store-apps]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
9866 浏览

c# - WinRT 图像处理

我和一个朋友昨晚大部分时间都在试图在 Metro 应用程序中处理一些图像时差点把头发扯下来。我们通过分享功能将图像放入应用程序,然后我想用它们做一些其他的工作,裁剪图像并将它们保存回 appdata 文件夹。事实证明这非常令人沮丧。

我的问题,在这一切结束时,将是“这样做的正确方法是什么,而不觉得我正在拼凑一堆不匹配的拼图?”

当与应用程序共享多个图像时,它们以Windows.Storage.StorageFiles 列表的形式出现。这是一些用于处理该问题的代码。

一些网上搜索表明,目前,aWindows.UI.Xaml.Media.Imaging.WriteableBitmap是唯一能够让您访问图像中的像素数据的东西。这个问题包括一个有用的答案,其中包含将图像保存到文件的扩展方法,因此我们使用了这些方法。

当我稍后再次尝试打开文件时,我们的问题是最严重的。我做了类似于以前的事情:

问题来了。如果我想要其中的字节,这个流有多长?

好的再试一次。

这可行,除非...如果图像被压缩,则流比您预期的要短,因此您最终会得到一个超出范围的异常。现在假设它是一个未压缩的位图。

好吧,猜猜是什么。即使我说bitmap.SetSource(fileStream);为了读入数据,我的字节数组仍然充满了零。我不知道为什么。如果我通过bitmap示例数据组将其传递到我的 UI 中,则图像显示得很好。所以它清楚地在某处获得了该位图中的像素数据,但我无法读取它bitmap.PixelBuffer?为什么不?

最后,这就是最终实际工作的结果。

所以现在我有图像数据,但我仍然有一个大问题。为了对它做任何事情,我必须对其格式做出假设。我不知道是 rgba、rgb、abgr、bgra,不管它们是什么。如果我猜错了,我的处理就会失败。我已经进行了数十次测试运行吐出零字节和损坏的图像、颠倒的图像 (???)、错误的颜色等。我本希望在properties我从调用中得到的一些信息中找到这些信息await file.Properties.GetImagePropertiesAsync();,但没有运气。那只包含图像的宽度和高度,以及其他一些无用的东西。这里的文档最少。

那么,为什么这个过程如此痛苦呢?这只是反映了图书馆现在的不成熟,我可以期待它变得更好吗?还是已经有一些标准的方法来做到这一点?我希望它像System.Drawing. 这为您提供了您曾经需要的所有数据,并愉快地正确加载了任何图像类型,而无需您自己处理流。

0 投票
2 回答
1398 浏览

.net - Windows 应用商店应用程序中的图像保存

我有两个按钮和一个图像控件。

现在,当我单击第一个按钮时,我正在尝试加载图像,如下所示。

现在,当我单击第二个按钮时,我需要在对同一图像进行一些修改后将该图像保存到图片库中。

这就是我正在尝试做的事情,并且对如何获取已经加载到图像控件中的图像并保存它感到困惑。

0 投票
0 回答
821 浏览

c# - Windows 应用商店应用中的 ComImport

似乎这个属性现在映射到 CoCreateInstanceFromApp 过滤掉你可以创建的 COM(基本上没用 - 没有第三方等)。

所以我想问你是否知道一些简单的方法来实例化已经存在并使用 GUID 在系统上注册的 COM?

我只设法做了这样的破解(但这非常麻烦,只是为了防止微软阻止我做我一直做的事情并且没有问题):

正如您所看到的,这需要在路径中包含 dll(或使用其他 API 来更改当前路径)以加载库,并且为了实现本来应该可用的东西有点太多的篡改......

如果有人知道一种更好的方法来实例化任何 COM 对象并更轻松地克服 Metro 的限制,我会买啤酒!

0 投票
1 回答
762 浏览

windows-runtime - 在winrt(地铁风格应用程序)中将事件连接到视图模型

Metro 风格的 Winrt 应用程序中不存在行为。我正在尝试将我的视图中的事件连接到我的视图模型。jarrey 在codeproject中有一个帖子。以前有人用过这个吗?如果你有,我的问题是:我可以联系任何活动吗?在命令绑定仅可用于按钮单击之前。

如果您有除 eventtocommand 之外的其他事件连接方式,请随时发表评论。

0 投票
1 回答
3547 浏览

c# - Windows 8 Metro 录制音频(过滤噪音、改变音高)

是否可以仅在有人讲话时录制音频?我想听麦克风,只有在“音量”大于某个噪音水平(意味着有人在说话)时才开始录制,我还需要更改录制音频的音高。

我在 C# 中尝试了 MediaCapture 类,但示例中的 StartRecordToStorageFileAsync 在我的场景中不可用。在 Windows Phone 中,我使用 XNA,但在 Windows 8 中找不到类似的 API。

0 投票
1 回答
491 浏览

wpf - 如何获取默认主题词典

Metro 应用程序使用一组默认主题资源字典。

有没有办法查看这些词典?

0 投票
3 回答
2395 浏览

wpf - Windows 应用商店应用程序中的动态资源?

WPF 对 DynamicResource 的支持非常棒,因为这允许用户更改正在运行的应用程序的外观和外观。

不过 WinRT 不支持 DynamicResource。

编写允许用户动态更改 UI 主题的应用程序的推荐方法是什么?

0 投票
2 回答
2871 浏览

c# - 我可以更改/“重新绑定”默认 WinRT 系统画笔/调色板颜色以匹配我的应用程序吗?

这样做会是最佳做法吗?

例如,HyperlinkPointerOverBrush定义深蓝色/绿色,这是当您的鼠标/“手指”悬停在链接上时我的应用程序继承的默认画笔颜色。但是深蓝色/绿色的颜色分配可以轻松更改为其他颜色吗?

(下图说明了我的应用程序引用的系统画笔列表) 在此处输入图像描述

我尝试HyperlinkPointerOverBrush在我的App.xaml

在我的地铁应用程序中,但无济于事;我的链接仍然保持默认的深蓝色/绿色。

关于我将如何处理这个问题的任何想法?以及定义应用程序的系统画笔的最佳实践。您希望在 Windows 8 Metro 风格的 WinRT 应用程序上使用“调色板”?(这是一口)

谢谢。

0 投票
3 回答
17792 浏览

c# - 是列表.ForEach() 方法不见了?

我最近开始涉足 Windows 8 Metro,发现我的一个老朋友似乎失踪了。

我倾向于使用这种.ForEach()方法而不是使用传统foreach()构造,并且我很快意识到这种方法不可用。例如,此代码不会在 Metro 应用程序下编译:

我已经搜索过是否可以找到有关此的任何讨论,但无法找到。我只是迟钝,还是真的消失了?

0 投票
1 回答
4788 浏览

c# - 复制文件到metro-style-app的安装目录

有没有办法将文件(使用文件选择器选择)复制到当前运行的 Metro 风格应用程序的安装目录?我试图通过以下方式获取 InstallationFolder:

但是我在获取 InstalledLocation 时总是收到以下错误:

Error HRESULT E_FAIL has been returned from a call to a COM component.

这可能是调试应用程序/不从商店安装它的问题吗?如何解决此异常?

该文件的副本应该可以使用Windows.Storage.CopyAsync(IStroageFolder, ...). InstalledLocation 来自类型StorageFolder。如果允许的话,是否有人有一些经验,或者我会得到什么。像安全例外?