问题标签 [xamlreader]

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

c# - FlowDocument 和 XamlReader x:Class

在我的 MainWindow 中,我将FlowDocumentScrollViewer其属性绑定DocumentFlowDocument我的MainViewModel中。

该文档是从远程计算机上的外部 xaml 文件存储加载的。目前,我可以通过正确加载此文档XamlReader.Load(xamlfile)并将其显示在FlowDocumentScrollViewer. 到目前为止,一切都很好。

当我尝试在此文档中添加超链接时出现问题。因为要处理RequestNavigate事件,我需要一个x:Class. 暂时这个类需要是我MainWindow的,因为事件是在代码隐藏中处理的。显然,当我添加我的外部文档时,我在解析的那一刻x:Class="Ugrader.MainWindow"得到了一个可爱的结果。'System.Windows.Markup.XamlParseException'

那么有没有办法解决这个问题?

这是我的一段代码

主窗口.xaml

主视图模型.cs

外部 FlowDocument

顺便说一句,有没有办法处理这个解析异常(如果外部文件损坏),因为即使在这个 try/catch 块中,这也会停止我的程序。

提前谢谢你,

巴斯蒂安。

0 投票
1 回答
404 浏览

c# - 从 XAML 加载 ResourceDictionary 也会将文件加载到内存中

我有一个 XAML 文件,我使用它作为 ResourceDictionary 加载它

在那个 XAML 里面,我有一个 ImageBrush。当我阅读字典时,MyApplication.vshost.exe 现在正在使用构成 ImageBrush 的图像文件。即 ImageBrush 的 Source 属性中的文件。我需要删除该文件,但它给出了一个错误,因为该文件正在被另一个进程使用。我的问题是如何正确执行此操作,以便以后可以自由删除文件。

0 投票
0 回答
235 浏览

wpf - 使用 XamlReader.Parse 创建的控件不继承样式

在我的应用程序中,用户可以输入 HTML,然后将其转换为 XAML。然后我使用该方法解析 XAMLXamlReader.Parse并将其添加到FlowDocument.

例如,假设我有一个段落的 XAML 存储在一个字符串中,然后我解析它并将其添加到FlowDocument如下所示:

请注意,该段落具有指定的样式。该样式在FlowDocument's 资源中定义。

你可以看到我定义了两种样式。第一个是隐式样式,第二个使用BasedOn属性扩展第一个。当我动态添加它Paragraph时,FlowDocument它确实选择了“大”风格。但是,有一个警告,它不会拾取隐式样式的红色前景色。我怎样才能让它同时拾取?

当我解析 XAML 时,这似乎只是一个问题。如果我只是实例化一个新Paragraph对象并将其添加到 中FlowDocument,它确实会同时采用两种样式。

0 投票
1 回答
104 浏览

asp.net-mvc - Transform image using XAML and generate new image

I have a ASP.NET MVC website.

I have a "flat" PNG image in my project that I need to transform. I think that I can use XAML for it.

Steps :

  • Create a XAML UserControl (or other) that transform the image adding a 3d effect for example
  • Use a XamlReader in my website controller, passing my flat image in parameter
  • Generate the new image file with my 3d effect

Is it possible to do what I need ?

Are the steps correct ?

I didn't find a good tutorial to do it, so ifyou have one, thanks in advance.

0 投票
2 回答
2404 浏览

c# - 使用 XamlReader 和 XamlWriter 时将内容从一个 FlowDocument 插入另一个

我将 FlowDocument 与 BlockUIContainer 和 InlineUIContainer 元素一起使用,这些元素包含(或作为基类)一些自定义块 - SVG、数学公式等。因此,使用 Selection.Load(stream, DataFormats.XamlPackage) 将不起作用,因为序列化将删除 * UIContainers,除非 Child 属性是 Microsoft 参考源中可用的图像:

在这种情况下,唯一的选择是使用完美工作的 XamlWriter.Save 和 XamlReader.Load,序列化和反序列化 FlowDocument 的所有必需属性和对象,但必须手动实现 Copy+Paste 作为 Copy+ 的默认实现粘贴使用 Selection.Load/Save。

复制/粘贴非常重要,因为它还用于处理在 RichTextBox 控件中或之间拖动元素 - 这是无需自定义拖动代码即可操作对象的唯一方法。

这就是为什么我希望使用 FlowDocument 序列化来实现复制/粘贴,但不幸的是它存在一些问题:

  1. 在当前解决方案中,需要对整个 FlowDocument 对象进行序列化/反序列化。就性能而言,这应该不是问题,但我需要存储需要从中粘贴哪些选择范围的信息(CustomRichTextBoxTag 类)。
  2. 显然,对象不能从一个文档中删除并添加到另一个文档(我最近发现的一个死胡同):“InlineCollection”元素不能插入到树中,因为它已经是树的子节点。

    我考虑在所有需要移动到另一个文档的元素中使用反射来设置 FrameworkContentElement._parent,但这是最后的手段 hackish 和肮脏的解决方案:

  3. 从理论上讲,我只能复制所需的对象:(可选)在选择开始时使用文本部分运行,中间的所有段落和内联以及(可能)在最后部分运行,将这些封装在自定义类中并使用序列化/反序列化XamlReader/XamlWriter。

  4. 另一个我没有想到的解决方案。

这是自定义的 RichTextBox 控件实现,其中包含部分工作的自定义复制/粘贴代码:

还有一个问题 - 是否存在使用 XamlReader 和 XamlWriter 为 FlowDocument 自定义复制+粘贴代码的现有解决方案?如何修复上面的代码,使其不会抱怨不同的 FlowDocument 对象或解决此限制?

编辑:作为一个实验,我实现了 2),以便可以将对象从一个 FlowDocument 移动到另一个。上面的代码已更新 - 所有对“字段”变量的引用。

0 投票
1 回答
68 浏览

c# - 动态加载 ResourceDictionnary

我有一些问题。我希望我的应用程序在 app.xaml.cs 中动态加载 ResourceDictonnary。

这是我目前的代码:

问题是,如何从 xaml 文件中获取 ResourceDictionnary 流?我不想用 exe 复制 xaml 文件。它的构建操作设置为 Page,我想加载它。

你能告诉我该怎么做吗?

谢谢 !

0 投票
1 回答
929 浏览

c# - 衡量 xaml 加载/解析性能的最佳方法是什么

我在整个应用程序中使用了一些 xaml 文件。我希望编写单元测试来测试每个 xaml 文件的性能,换句话说,加载/解析和渲染其中一个窗口(使用某些 xaml 文件)需要多长时间。

我发现 XamlReader 类(我认为)正是这样做的。但是,我知道Application.LoadComponent()(在 System.Windows 中)也可以用于类似的事情。如果您必须测试解析整个 xaml 文档需要多长时间,您会使用什么? XamlReader.Load()/XamlReader.Parse()Application.LoadComponent(),或完全不同的东西?在这种情况下,最好的行动方案是什么?

此外,由于我在以编程方式进行性能测试方面经验不足,因此测量加载时间的好方法是什么,System.Diagnostics 中的秒表类是否合适?

0 投票
1 回答
844 浏览

c# - XamlReader.Read 或 XamlReader.Parse 如何实例化类型以构建 wpf 树?

我知道对于具有指定clr-namespace:assembly=标记的控件,XamlReader 只是在指定程序集中查找该类型。

但是默认命名空间中的默认 WPF 控件xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"呢?

我正在尝试获取 XElement 树中每个元素的类型,但我不知道在未指定程序集时如何找到它?

例如,以下所有示例都返回 null:

  • Type.GetType("Grid")
  • typeof(Control).Assembly.GetType("Grid")
  • Assembly.GetAssembly(typeof(Control)).GetType("Grid")

帮助?

0 投票
0 回答
913 浏览

windows - 尝试定位字符串时出现 Windows.UI.Xaml.Markup.XamlParseException

我正在按照教程创建我的第一个 Windows 应用程序。我在第 3 步,如果我尝试运行应用程序,我会在这里得到一个 Windows.UI.Xaml.Markup.XamlParseException

由于我什至没有更改指南中的名称,这是怎么回事?

编辑 1:完整的错误信息

0 投票
1 回答
1819 浏览

c# - 如何在 C# 中使用内联 XAML 在代码隐藏中轻松创建自定义对象

我正在尝试使用 XAML 解析器引用 LinearGradientBrush,但它无法识别对象并且出现异常:

“无法创建未知类型 'LinearGradientBrush'”

是否可以在运行时识别这种类型?

这是我正在使用的代码:

我真的不喜欢在 XAML 中编程(特别是因为我所做的大部分工作都是依赖于运行时程序流程的设计,但是有些对象在其中制作原型比 C# 更容易,我更希望能够使用这种方法...

我读过我应该在某处包含这样的一行,但老实说,我不明白为什么,如果我把它放在所有“使用”下似乎不起作用

无论如何,在 C# 代码文件中运行时解析 XAML 的任何帮助将不胜感激。