问题标签 [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.
wpf - XamlReader 生成 DataTemplate 的问题
我正在尝试在我的 WPF 项目中实现以下代码,以便为具有动态列的 DataGrid 动态生成 DataTemplates。我在这里找到了 StackOverflow 上的代码
但是,在 XamlReader.Load 代码中,我收到错误“无法从 'string' 转换为 'System.Xaml.XamlReader'。
我试图通过将代码更改为:
但我收到有关在字符串中传递无效字符的错误。
另外,我不确定如何将 TextBlock 传递给此代码。我以为我会创建一个 TextBlock 并将其作为 Type 参数传递,但我收到错误“无法从 'System.Windows.Controls.TextBlock' 转换为 'System.Type'
任何帮助表示赞赏。
.net - 如何监视 XamlWriter.Save() 操作的进度?
我有一个要保存并稍后加载的 FlowDocument。
我想我可以用 XamlWriter.Save() 和 XamlReader.Load() 做到这一点。
它有效,但需要很长时间。我想,所花费的时间就是所花费的时间,但是为了使 UI 更加简洁,我想提供一个显示保存进度的进度条。
但是如何监控 a 的进度XamlWriter.Save()
?
为了节省,一个想法是围绕目标流创建一个瘦包装类;然后它可以通过计算通过 Write() 方法发送的字节数来跟踪进度。这会起作用,但这是一个开放式的进展,因为我没有办法计算完成百分比。
我想我可以在阅读方面做类似的事情。
有人做过吗?跟踪 XamlWriter.Save() 进度的好方法是什么?
c# - 绑定不适用于动态加载的 xaml
我正在XamlReader
成功使用来加载一个 xaml 文件并创建一个FrameworkElement
可以使用的文件。
我正在加载的 xaml 中包含绑定表达式,例如:
如果我将返回的 FrameworkElementXamlReader.Load()
放入 WPF 窗口,则绑定一切正常。
但是,在这种情况下,我使用的是Laurent Bugnion 关于从 WPF/XAML 创建 PNG 的优秀文章。由于 的结果XamlReader.Load()
通过 a 直接写入 PNG VisualBrush
,因此似乎绕过了 WPF 调用绑定表达式的必要机制。
这让我相信实际的绑定并没有真正通过调用来调用XamlReader.Load()
,或者它们没有工作是因为我不知道与没有可视化树有关的事情,直到你添加FrameworkElement
到现有的视觉树或其他东西。
我可以做些什么来确保调用这些绑定吗?
提前谢谢了。
c# - C# 从 XAML 文件创建模块目录
我在 prism 库的上下文中从 xaml 文件加载模块时遇到问题。模块的 xaml 如下所示:
到目前为止,解析器找到了这个 xaml,但没有找到 HelloWorldModule.dll。我在文档中找不到任何有用的东西,因为这些都是针对 Silverlight 的,但我的项目是 WFP 应用程序。
shell.exe 的相对路径是:
HelloWorldModule.dll 的路径是:
所以问题是“Ref”属性期望什么值?它是 HelloWorldModule.dll 的绝对路径吗?
第二个问题是 ModuleType 属性应该具有什么值:
类类型名称是否包含命名空间?
下一个问题是,HelloWorldModule.dll 是否与 Shell.exe 位于同一文件夹中?谢谢,于尔根
wpf - 加载 generic.xaml 以合并资源字典时 XamlReader 抛出
尝试在代码中加载 generic.xaml,但会引发 XamlParseException。代码如下:
这个想法是在一个基本页面中合并一个资源字典。然后派生的页面可以使用例如,从它们的基类中使用样式、颜色、画笔等{StaticResource DarkBrush}
。
但是上面的代码抛出:
'',十六进制值 0x0C,是无效字符。第 1 行,位置 1。
generic.xaml 文件是在 VS2010 中以标准方式创建的。试图将 Build Action 设置为 Resource 但这也不起作用......
我从 Microsoft获得了代码示例。在那里它被用来加载一个页面。任何帮助将不胜感激。
xaml - 如何解析具有自定义类的 xaml 文件,以获取所有对象的列表?
我浏览了大量类似的帖子,但在我的情况下似乎没有任何效果。我要做的就是加载一个 xaml 文件(位于其他程序集中),并遍历不同的元素/对象以检查某个属性值。我可以将它作为一个简单的 XML 文件来阅读,但是无法通过 xml 解析来捕获样式等内容。经过大量搜索,我尝试了以下两件事:
- 我
x:Class=".."
从 xaml 中删除了我还添加了assembly=XBase.UI
这个(因为我原来的 xaml 没有这个,我读到动态加载时,你需要知道指定程序集)然后我将剩余的文件加载为 xml 流。然后我打电话给 XamlReader.Load(stream)
这似乎适用于发布查询的人,但我得到了例外
我尝试的第二件事是使用 XamlReader.Parse 并提供 ParserContext。这就是我所做的:
这也会引发异常:
我的原始 xaml 文件
请帮帮我。我什至不确定这是否是实现我想要的正确方法。如果除了 XmlDocument 的 GetElementsByTagName 之外,还有其他方式可以以更有意义的方式列出某种类型的所有元素,请告诉我。
提前致谢!
wpf - XamlReader - 将多个 CLR 命名空间映射到单个 XML 命名空间
我有一个 WPF 项目,其中将AssemblyInfo.cs
多个 CLR 命名空间分组到一个 XML 命名空间中:
在 XAML 中,它是这样使用的:
这在正常实例化 XAML 时效果很好,但现在我正在尝试使用XamlReader
.
问题:我似乎无法将多个 CLR 命名空间映射到单个 XML 命名空间。似乎添加到的最后一个定义XamlTypeMapper
是唯一持续存在的定义(例如,它破坏了以前的注册):
错误信息是:
如果全部将我的所有代码放在一个公共 CLR 命名空间下,一切正常,但不幸的是,这不是选项。是否有人将多个 CLR 命名空间映射到单个 XML 命名空间以动态加载 XAML 内容?
提前致谢!
xaml - 在 XamlReader.Load() 加载的文件中成功引用 ResourceDictionary
我正在构建一个通用的 WP7 程序集,它将显示我的应用程序的常见帮助/关于信息,每个应用程序程序集将指定一对 StackPanel,其中包含一些应用程序特定信息(以及调用 em Legal.xaml 和 WhatsNew.xaml)。
理想情况下,这些应用程序特定的 XAML 文件应该是纯文本形式(相对于在代码中实例化的东西),因此可以通过 HTTP 或作为嵌入式资源字符串加载。
加载 XAML 工作正常,直到我尝试将一些样式定义分解到另一个文件中,然后 XamlReader.Load() 失败并显示:“属性 AboutPageDocs/CommonStyles.xaml 值超出范围。[行:43 位置:45]”</p>
加载 Legal.xaml 时会发生该错误,当我们环顾四周时,我们会发现我试图加载现在包含自定义样式的 ResourceDictionary 的位置:
这是错误...如果只是复制并粘贴 StackPanel 代码(在运行时动态加载)并将其放入 UserControl... 一切正常。
不必在 Legal.xaml 和 WhatsNew.xaml 中定义我的内联样式...有没有办法让 XamlReader.Load() 属性查找 CommonStyles.xaml?
考虑到源路径不正确,我尝试通过两个程序集将 CommonStyles.xaml 的副本放置在不同的位置......以及尝试使用 pack:// uri 语法......到目前为止都无济于事.
我错过了什么?
c# - 命名并声明按钮的事件处理程序在运行时使用 C# XamlReader 创建
我正在使用 C# 和 WPF 开发一个项目,该项目动态创建包含一些文本、图像和按钮的网格布局。我创建了许多这样的网格,并将它们添加到堆栈面板中。我使用 XamlReader.Create() 函数创建了这个网格。这是整个代码,我很抱歉 Xaml 代码太长了
这对我来说效果很好,我认为这将是在运行时生成网格布局的正确方法,但是现在我需要命名按钮并定义一个事件处理程序,这就分崩离析了。当我尝试将按钮描述更改为
我得到一个 XAMLParse 异常。在阅读完此内容后,我不太确定您是否可以在运行时在 xaml 中声明这些内容。所以现在,我对如何做到这一点感到非常困惑。创建网格后,我不能只更改名称,因为它没有名称可供调用。有没有办法访问 UIElement 的子元素,即使它没有名字?或者有没有办法在运行时在 XAML 中声明名称而我只是做错了?