问题标签 [windows-8.1-universal]

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 投票
5 回答
8694 浏览

xaml - Windows 应用商店通用应用程序中的字体大小缩放 (W8.1 + WP8.1)

如何在 Windows Store Universal App (W8.1 + WP8.1) 中缩放文本?基本上,无论使用哪种设备/分辨率,应用程序看起来都应该相同。目前的情况是布局(基于动态网格的布局)和图像除了文本(字体大小)之外都可以很好地缩放。

显示的文本对于 WVGA 分辨率 (480 × 800) 看起来不错,但对于 1080p 分辨率来说却是令人难以置信的小。

我已经阅读了很多东西,例如 缩放到像素密度的指南或 支持多种屏幕尺寸的指南

但我仍然不知道如何缩放文本以保持可读性,无论显示分辨率/ DPI如何。

当然,我可以编写一个使用DisplayInformation.ResolutionScale属性将字体大小转换为适当值的类。

例子:

  • 具有 ScaleFactor 1x 的 WVGA 上的 FontSize 16 等于 FontSize 16
  • 具有 ScaleFactor 1.6x 的 WXGA 上的 FontSize 16 等于 FontSize 25,6
  • FontSize 16 on 720p with ScaleFactor 1.5x 等于 FontSize 24
  • FontSize 16 on 1080p with ScaleFactor 2.25x 等于 FontSize 36

但我不确定这是否适用于所有情况。有更好的方法吗?我认为这样一个常见的任务可以通过一些内置功能来执行。

免责声明:这(希望)不是“让我用谷歌搜索这个问题”我发现了大量关于缩放的页面,但它们都涵盖了布局或图像。但我找不到任何关于字体大小缩放的信息。如果我遗漏了什么,请原谅我。


编辑:恐怕我没能清楚地表达问题:(左边是WVGA,右边是1080p) WVGA 与 1080p

0 投票
2 回答
10960 浏览

c# - 在 Windows Universal App (Windows 10) 中使用 C# 获取设备信息

我想知道如何在新的通用 Windows 应用平台中使用 C# 以编程方式获取特定于设备的信息。这是为了从旧 Windows 窗体项目的现有 C# 代码中获得一个简单的 PC 工具箱到 Windows 10 中的 UAP。

我希望获得已安装(或可用)的总 RAM、CPU 架构和 ID/名称(例如 64 位 Intel Core i5-XXXX)、设备制造商和型号(Dell XPS XXXX)以及序列号/服务标签.

假设这些应用程序将使用 Windows 10,并且该应用程序最初将面向传统 PC,但我想扩展到功能有限的 Windows Phone/Mobile(不确定某些部分如何/是否可以在 ARM 上运行) . 如何检测 Windows 10 的哪个版本,例如“家庭”、“专业”、“企业”、“移动”或“移动企业”,以及 32/64 位和语言?

我现有的 C# 代码使用了一个似乎不适用于 Windows 应用商店应用程序的库。

我对 C# 很生疏,但对任何类或引用的任何帮助将不胜感激。我意识到获取所有代码来存储所有这些规范可能有点多(如果可能是 ATM),但是指向正确方向的指针会非常有帮助。

0 投票
1 回答
267 浏览

c# - windows Universal 8.1 中的后台任务和 SQLite

我创建了一个 Windows 通用应用程序的项目。然后我添加一个新的运行时组件(后台任务 C#)来更新我的磁贴。
然后我为后台任务安装 sqlite-net。我想从我的数据库中读取一些数据。当我想运行我的应用程序时,我从 SQLite.cs 收到一些错误。

http://borjianamin.persiangig.com/errors.png

我搜索了一下,发现了这个主题:(我很抱歉,因为我没有足够的声誉)
stackoverflow.com/questions/14812076/how-to-connect-to-sqlite-database-from-windows- runtime-component-which-is-for-ru
github.com/praeclarum/sqlite-net/issues/104

我使用VS2015的替换工具并将所有公共替换为内部但这次我得到大约300个错误。

这只是我的后台任务项目:
链接:http ://www.rodfile.com/uu9viaaxsz91

有可能帮助我吗?

谢谢。

0 投票
1 回答
368 浏览

windows-phone-8.1 - 在 Windows Phone 8.1 下多次调用 MessageDialog 导致崩溃

我开发了一个使用MVVM-Light的通用应用程序。我从ViewModels调用WebServices,并将 WebServices 调用遇到的异常抛出给 ViewModels:TimeOut、Wrong URL、Server Exception,...

我创建了一个“ ExceptionsMsgHelper.cs ”类,它通过MessageDialog集中为每个异常显示的消息。

我的主页基于包含多个数据的 Pivot:一些 Web 服务是异步调用的。如果我通过类“ ExceptionsMsgHelper.cs ”在 MessageDialog 中显示异常,那么我会遇到崩溃,而之前的异常也显示在另一个 MessageDialog 中。

这是我原来的课程的一部分:

=> 如果我两次调用“msgbox.ShowAsync()”,我得到“System.UnauthorizedAccessException”异常:带有消息“访问被拒绝。(来自 HRESULT 的异常:0x80070005(E_ACCESSDENIED))”

我一直在寻找解决方案来解决它:

代码是:

=> 但我总是遇到同样的例外。

使用此代码:

=> 但在这种情况下,我总是遇到同样的异常。

现在的代码是:

=> 这对我有用。

但就像它的作者说的那样,它可能不是最好的解决方案:

当您需要打开一个新对话框时,请关闭现有对话框。这是最简单的选项,也可能是最好的选项,尽管您可能会取消一个可能很重要的对话,具体取决于您的对话内容。排队对话,这样旧的对话就不会被解雇,但新的对话会在旧对话被解雇后出现。这将确保用户关闭所有对话框,但如果您的应用程序可以以某种方式开始显示数百个对话框,这可能是一个问题。只有在没有显示的情况下才打开一个新的。现在这有可能不会显示更新的消息,这听起来比第一个选项更有问题。

=> 我想了解为什么我不能应用似乎更适合的 2 个第一个解决方案

0 投票
1 回答
36 浏览

windows-phone-8.1 - Appbar弹出问题

我正在开发一个 windows phone 8.1 通用应用程序,并将应用程序栏放在页面底部。我在页面底部有一些按钮,每当我单击页面底部的按钮时,应用栏就会弹出。在应用栏即将到来时使用底部按钮时会出现问题。我已将应用栏设置为ClosedDisplayMode="Minimal",但同样的问题仍然存在。

有没有办法将应用栏放在页面顶部或隐藏底部应用栏来解决这个问题?

0 投票
1 回答
254 浏览

tabs - 在 Windows 8.1 通用应用程序中创建选项卡

我正在开发一个 Windows 8.1 通用应用程序(使用 VS2013),我想在GridView. 搜索后,我发现无法创建标签,所以我需要一些解决方案,我可以创建至少看起来像标签的东西。

这是我需要的:

我有图像作为标签页眉。当我单击每个图像(如Appbar图标)时,不同的图像StackPanel应该出现在同一个网格上。

这就是我需要我的应用程序的样子:

这就是我需要我的应用程序的样子

0 投票
1 回答
99 浏览

windows-runtime - Controlling background task instances

Is there any way to synchronize several instances of one background task?

I'm working on a universal windows 8.1 store project. I have a background task that receives raw notifications and downloads and updates some data (hopefully meeting the CPU quota and running time limitations).

I want to avoid running background work simultaneously on Windows Phone when several pushes arrive at once. That is, background task should check if another instance of it is running and exit quietly.

The only way I could think of was through a semaphore file in local storage... But since all file IO on WP is asynchronous, I don't see how I could get it working without race conditions.

Any ideas?

0 投票
0 回答
106 浏览

c# - 在可移植类库中实现带退避的重试

我正在开发一个protable class library(PCL). 这样做的目的PCL是注册推送通知通道并启动MQTT与服务器的连接。问题是PCL必须能够检测到瞬态连接故障并通过退避重试。我找到了一个Polly为此目的而调用的库。PCL有一个静态方法(Init),我从方法中Windows Universal 8.1 app调用它。OnLaunched我希望 PCL 不会阻止UI Thread. 我不能使用ConfigureAwait(false)inOnLaunched方法,因为只能UI Thread访问与 . 相关的元素UI。我认为当前Polly的异步实现块UI Thread

用这个假设实现我的 PCL 库的正确方法是什么?是否有用于重试 Purose 的库PCLexcept Polly

应用程序.xaml.xs

PCL.cs

0 投票
2 回答
125 浏览

windows - Windows 运行时应用程序:升级 SQLite 数据库并添加新表

我的 Windows 应用程序的第一个版本(位于 Windows 商店)中有一个 SQLite 数据库。现在我想发布应用程序的第二个版本,其中还有一个 SQLite 数据库,其中添加了新表。我的数据保存在第一个版本中,不想丢失它们。我发现Android有处理 sqlite 数据库版本onCreateonUpgrade方法。Android:升级数据库版本并添加新表

类似的问题在这里。但这适用于 iOS。

Windows 运行时应用程序(Windows 8.1 和 Windows Phone 8.1)是否有类似的解决方案?请提出一些替代方案。

提前致谢。

0 投票
1 回答
36 浏览

windows-phone-8.1 - Windows Phone 8.1 - 创建模板并在很多地方使用它?

我有一个场景,我需要创建模板并在很多地方使用它。

例如 :

我试过这样的事情:


我面临的问题是,它第一次工作正常,当我返回并再次导航时,它抛出异常“该元素已经是另一个元素的子元素”。

请建议我这是正确的做法还是有其他方法。

PS:我想创建几百个这样的模板,所以我不能使用用户控制。

提前致谢。