问题标签 [windows-app-sdk]

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 回答
156 浏览

c# - 如何在 Visual Studio 2022 中正确创建 C# WinUI 项目?

我一直在尝试创建一个新的 WinUI 项目。我按照MS Docs 页面准备了开发环境,并使用Blank App, Packaged (WinUI 3 in Desktop)模板创建了新项目。以下代码运行没有任何异常。

但是,在添加新BlankWindow1窗口并使用此代码打开它后,应用程序会因kernelbase.pdb not loaded错误而中断。我怀疑我在创建项目/设置开发环境时遗漏了一些东西,因为前段时间我一直在使用相同的代码而没有问题。但是,在做了几次之后,我仍然看不到我这边有任何错误。

MainWindow.xaml

MainWindow.xaml.cs

App1.csproj

0 投票
0 回答
77 浏览

c++ - 如何解决“锁定在持有时被破坏”Visual C++ 运行时断言

在使用 DirectX 渲染 3D 组件的程序中,我使用了一个专用的渲染线程,如果我调用DispatcherQueueController::CreateOnDedicatedThread()显然会创建该线程。需要渲染的内容受到主线程上执行的操作的影响,这就是我使用scoped_lock来同步访问的原因。

创建渲染线程的代码和在其中运行的代码如下所示:

C++ 头文件中的关联成员变量如下所示:

为了停止渲染线程,3D 组件的析构函数包含以下代码:

当 3D 组件被破坏时,Visual C++ 运行时会抛出一个如下所示的断言:

我可以获得的调用堆栈如下所示:

我很难理解断言是否Lock was destructed while held指向实际问题,或者忽略它是否安全。如果这是一个实际问题,我将如何正确解决它?

0 投票
1 回答
152 浏览

azure-devops - 如何在 AzureDevops 管道中使用 .NET 6 构建 WinUI 3 应用程序?获取:错误NETSDK1095

我有一个空白的 WinUI3 桌面应用程序:

Visual Studio 项目模板

我想在 AzureDevops 构建管道中构建这个应用程序:

我收到此错误:

C:\hostedtoolcache\windows\dotnet\sdk\6.0.101\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Publish.targets(293,5):错误 NETSDK1095:不支持针对性能优化程序集选定的目标平台或架构。请验证您使用的是受支持的运行时标识符,或将 PublishReadyToRun 属性设置为 false。[D:\a\1\s\apps\windows\WinUI3VS2022NET6BlankApp\WinUI3VS2022NET6BlankApp\WinUI3VS2022NET6BlankApp\WinUI3VS2022NET6BlankApp.csproj]

我尝试在 .csproj 和 .wapproj 文件中将 PublishReadyToRun 设置为 false,但没有成功。

该应用程序使用 Visual Studio 2022 在本地构建良好。

有什么想法可以在 AzureDevops 中构建这个空白的 WinUI 3 应用程序吗?

0 投票
1 回答
36 浏览

uwp - UWP/WinUI:重写 TextBox.HeaderTemplate 使其可以显示复杂的内容

是否可以覆盖TextBox.HeaderTemplate以便它可以显示复杂的内容——比如一个StackPanel有多个项目的?

我正在尝试这样做以进行测试,但它不起作用。

0 投票
1 回答
60 浏览

uwp - 用于 UWP/WinUI 的 TextBlock.Foreground 模拟

是否可以全局设置 Foreground for Border 进行内部控制?类似于 WPFTextBlock.Foreground附加属性。我试过这段代码,它不起作用:

我也试过DefaultTextForegroundThemeBrushSystemColorWindowTextColor

PS 我会稍微解释一下原因 - 我正在编写一个实用程序来将 WPF xaml 代码转换为等效的 UWP / WinUI,并且我正在寻找一种无需重新定义样式的替代方法(因为内部控件可以显式设置自己的样式)。到目前为止,我看到的唯一解决方案是在 Border 内的所有 TextBlocks 上显式设置 Foreground 属性(如果未设置)。

0 投票
2 回答
69 浏览

c# - 如何从 Page.Resources 中的数据模板中将按钮绑定到 viewmodel 命令?

在我使用 Windows App SDK 的应用程序中,我试图让一个按钮点击事件来触发我的视图模型中的命令。当数据模板位于页面和页面之间时,我已经让它工作了,但是当数据模板在 Page.Resources 中时,它就不起作用了。我必须在 Page.Resources 中放置一些数据模板,因为我需要在 TreeView 中有多个数据模板,并使用 DataTemplateSelector 根据项目的类型选择正确的一个。我已经让模板选择工作了,但我无法让按钮绑定工作。看起来 ElementName 绑定找不到页面名称。谁能告诉我我做错了什么?

然后在下面的页面代码中:

0 投票
1 回答
41 浏览

datagrid - WinUI3:如何设置数据网格组标题文本的样式?

我在我的 WinUI3 项目中使用Windows Community Toolkit DataGrid 控件。

我想让组标题文本加粗。我怎样才能做到这一点?

目前组头看起来像这样(不是粗体):

组头,非粗体

我尝试过设置样式:

0 投票
1 回答
34 浏览

c++-winrt - 如何在没有完整路径的情况下访问程序文件中的文件

我在 WinUI3 项目中使用 c++/winrt,我试图让应用程序拉出一个文本文件,用户可以从中选择一个选项。我试图访问的文件位于项目文件夹中并包含在项目中。目前,我已将文件路径设置为我的设备,因此它会从我的目录中提取文本文件。我希望应用程序能够从程序文件中读取,而不是从当前编码的长文件路径中读取。我尝试更改文件的相对路径并使用 fstream 函数读取文件。我也尝试使用“Aircrafts/Aircrafts.txt”,但这也不起作用。

这是代码片段。

0 投票
0 回答
44 浏览

c# - WinUI 3 / Windows App SDK 是否值得学习(对于一个小型 C# 项目)?

对于像 TSR 音频播放器(开源/ Github)这样的项目,它允许用户从撒旦唱片Spotify流式传输音乐(通过 HTML/CSS/JS 中的嵌入式小部件)。当前阶段的项目是WPF(旧技术)。

我希望通过将其更新为Microsoft Store格式来做出贡献,这基本上意味着UWP(已弃用)或Windows App SDK / WinUI 3,但我对WinUI 3了解不多,除了我可以从 Microsoft 文档中收集到的少量信息在线的。

它似乎与 WPF 的 XAML 足够接近,因此学习起来并不难,但考虑到目前 Visual Studio 中没有“拖放”编辑器,而且该技术仍然是“绿色/新/缺乏经验”(我不知道用英语怎么说),我想知道使用WebView 2 .NET 组件(基本上是 WPF 和 WinUI 3 都存在的 Edge 应用内“浏览器”)是否更好) 并仅使用 HTML、CSS 和 Javascript 等 Web 技术“重新编码”整个项目。

对于这样一个“小”项目来说,这不会有什么不同,对吧?

您会建议我做什么(作为开发世界中的相对“新手”)。1)学习如何使用 WinUI 3“正确”编码并以“正确的方式”更新项目或2) “作弊”通过使用 HTML/CSS/JS 来“模仿”程序的方面,同时提供几乎完全相同的功能(可以这样做,因为它不是一个非常大的项目)。

非常感谢您的回答,并为我糟糕的英语感到抱歉(这不是我的母语)。谢谢!

0 投票
2 回答
24 浏览

xaml - WinUI:使用轻量级样式时如何减少重复代码?

我正在使用轻量级样式来设置按钮样式:

我想将此样式应用于多个(但不是全部)按钮。

目前我需要将这些复制并粘贴<Button.Resources>到我想要设置样式的每个按钮上。

有没有办法避免这种重复?

我尝试创建一种样式,但不知道如何在样式中设置资源。

我想我可以创建一个控制模板,但这似乎很重。