问题标签 [xaml-islands]

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

c# - 如何在 WPF 中通过 XAML 岛使用 Windows 10 样式资源

我正在使用 XAML Islands 来制作我的应用程序,并且我想在我的 WPF 应用程序中使用 Windows 10 样式,如下所示。例如<TextBlock Text="Header" Style="{StaticResource HeaderTextBlockStyle}"/>会导致:

在此处输入图像描述

但这在 WPF 中不起作用(它确实在 UWP 中起作用,无需任何修改),我的理解是 XAML Islands 应该使它成为可能。当我尝试简单地将上面的代码添加到我的 xaml 文件中时,我得到了异常

找不到名为“HeaderTextBlockStyle”的资源。资源名称区分大小写。

如果我添加Style="{StaticResource HeaderTextBlockStyle}"到一个<xamlhost:WindowsXamlHost>元素,我会得到同样的例外。

因此,我尝试使用代码添加控件,因此我将此 WindowsXamlHost 控件添加为堆栈面板:

<xamlhost:WindowsXamlHost InitialTypeName="Windows.UI.Xaml.Controls.StackPanel" ChildChanged="WindowsXamlHost_ChildChanged"/>

并添加了这个方法(一个在制作控件时运行的事件处理程序。从中学习),处理向 StackPanel 添加额外的控件(一个 TextBlock):

Application.Current.Resources["HeaderTextBlockStyle"]方法什么都不做,也不会抛出异常。

this.FindResource("HeaderTextBlockStyle")方式引发下一个异常:

System.Windows.ResourceReferenceKeyNotFoundException: ''HeaderTextBlockStyle' 资源未找到。

那么如何在我的 WPF 应用程序中获取这些样式资源呢?

0 投票
1 回答
52 浏览

c# - UWP MapControl inW WPF 应用程序使用 XAML 岛

我使用这些说明在我的 WPF Core 应用程序中包含了一个 MapControl 。我可以正确显示地图,但问题是当我尝试在地图顶部放置任何其他界面元素时。我尝试了很多方法,但地图总是覆盖我放在它上面的任何其他元素,因此不会显示。例如:

这应该是这样的:

在此处输入图像描述

但结果是这样的:

在此处输入图像描述

如何在 MapControl 上放置任何其他元素?

0 投票
1 回答
176 浏览

c# - 如何对使用 XamlIslands 的 WPF 应用程序进行单元测试?

我正在开发一个WPF应用程序,我正在使用Xaml Islands它来显示 win10 UI 组件。为此,我需要创建一个可以实现这些组件的 UWP 项目。

我想为 WPF 项目中的业务逻辑编写单元测试。我无法创建Unit Test App (Universal Windows),因为无法将 WPF 应用程序添加为此项目的引用。因此,我尝试创建一个针对 .NET Core(已尝试MSTest ProjectxUnit Test Project)的测试项目,但是当我添加到 WPF 应用程序的引用时,它显示以下错误:

Project <UWP...> is not compatible with netcoreapp3.1 (.NETCoreApp,Version=v3.1). Project <UWP...> supports: uap10.0.18362 (UAP,Version=v10.0.18362)

这是因为 WPF 应用引用了 UWP 应用来显示 win10 组件。

那么,有什么想法,如何将单元测试项目添加到我的解决方案中?

0 投票
0 回答
124 浏览

wpf - WPF Xaml Islands - UWP 地图控制像素化折线

我目前正在将 WPF 应用程序从 .Net Framework 迁移到 .Net Core (3.1)。此应用程序当前使用 Microsoft.Maps.MapControl.WPF 程序集中的 MapControl。目标是将此控件从 Microsoft.Toolkit.Wpf.UI.Controls 程序集迁移到 UWP MapControl。要求之一是能够在地图上绘制路线/折线。

按照微软的文档(在https://docs.microsoft.com/en-us/windows/uwp/maps-and-location/display-poi中),我能够在地图上画线。然而,最终结果并不理想(视觉上):线条出现像素化,如下图所示:

当前结果

我怎样才能给这条线一个平滑的外观?有没有办法对它们应用抗锯齿?在网上广泛搜索后,我找不到任何可以平滑渲染这些元素的函数或属性。我能做些什么来实现这一目标?

编辑:

创建 MapPolyLine 的 .Net Framework 方式(使用 Microsoft.Maps.MapControl.WPF):

创建 MapPolyLine 的 .Net Core 方式(使用 Microsoft.Toolkit.Wpf.UI.Controls):

0 投票
0 回答
133 浏览

c# - 使用 XAML Isalnds(UWP 的 SVGImageSource)在 WPF 中显示 SVG 格式的图像

我正在尝试使用 XAML-Island(UWP 的图像和 SVGImageSource)在 WPF 中显示 SVG 图像。但不知何故,只有当我将 URI 源作为位于磁盘中的图像的硬编码路径提供时,它才能工作,但是当我提供包含在我的 Project->Assets 文件夹中的 URI 源时,图像没有显示。

这是我正在尝试的代码。

只有 hardCodedURI 工作,除了三个不工作。

0 投票
1 回答
143 浏览

c# - 在 WPF 项目中使用 NavigationView

我想在 WPF 项目中将 navigationView 与 xaml 岛一起使用。我将 NavigationView 添加到项目中。外观方面没有问题。如果我在代码隐藏中创建一个新页面,我可以在页面之间切换。

但是当我想在我的项目中打开一个附加页面时,我遇到了以下错误。

C# 代码

Xaml 代码

错误

0 投票
0 回答
81 浏览

c# - 使用 XamlIslands 在 WPF 项目中更新 Microsoft.UI.Xaml 库时出现问题

我有一个WPF项目,XamlIslands用于在我的应用程序中显示 Windows 10 样式的 UI 组件。我在介绍XamlIslands的时候,项目中的Microsoft.UI.Xaml包版本是,后来因为下面的问题一直没有更新,但是现在更新是不可避免的。UWP2.4.0-prerelease.200113001

最新版本的问题Microsoft.UI.Xaml - 2.7.0是,当我运行应用程序时,会立即关闭。我发现调用应用程序的Initialize()函数时发生了崩溃UWP(我无法在应用程序中捕获异常):

在输出窗口中,我只看到了这个:

该问题也可以通过示例应用程序重现。在 Visual Studio 中打开WPF_XAMLIslands_v1.sln或,在 NuGet 包管理器中将项目的包更新为最新版本并运行应用。发生与我的应用程序相同的事情。WinForms_XAMLIslands_v1.slnMicrosoft.UI.XamlUWPApplication

你知道发生了什么吗?知道我可以尝试解决什么吗?

0 投票
0 回答
115 浏览

c++ - 不允许出现错误 C2139 未定义类 - 在 MFC 应用程序中使用 xaml 岛时

我正在尝试使用 Xaml Islands 在旧版 C++ MFC 应用程序中嵌入 WinUI 控件。我已按照在 C++ 桌面 (Win32) 应用程序中托管自定义 WinRT XAML 控件作为指南。我的 MFC 应用程序一直编译到我遵循本教程的“在桌面项目中托管自定义 WinRT XAML 控件”部分。IDesktopWindowXamlSourceNative引用和编译我的应用程序时出现以下错误。

构建错误:

**\Generated Files\winrt\base.h(1981,53):error C2139: IDesktopWindowXamlSourceNative: 一个未定义的类不允许作为编译器内在类型特征的参数__is_base_of

我已经成功完成了教程示例,但是当我将这些步骤应用到我们的旧版 MFC 应用程序时,它没有编译。我不确定可能是什么问题。

0 投票
0 回答
24 浏览

c++-winrt - WinRT/C++ 最低硬件要求

我正在寻找一种可用于使用 WinRT/C++ 库(XAML 岛)创建 C++17 桌面程序的设备,从键入代码到在 Visual Studio 2022 中编译它。我也在使用 WinUI 2.8预发行版 (Microsoft.UI.Xaml.Controls),这可能会占用更多资源。通常,在一个解决方案中有 2 个项目,即 Win32 (App) 和 UWP (UI) 项目。对于一个 UWP 项目,通常其中有大约 10 个 WinRT/C++ Pages。

因此,适合这种情况的最低硬件要求是多少,才能使编程过程顺利甚至快速运行?还有目标硬件要求呢?

注意:有时 Visual Studio 2022 和 Microsoft Edge(2-3 个选项卡,AdBlocker 扩展)同时运行。