问题标签 [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 投票
2 回答
1432 浏览

silverlight - Silverlight 3.0 自定义 ListBox DataTemplate 有一个复选框,选中的事件未触发

ListBox 的数据模板由 XamlReader.Load 动态设置。我通过使用 VisualTreeHelper.GetChild 获取 CheckBox 对象来订阅 Checked 事件。此事件没有被触发

代码片段

如何处理选中的事件?请帮忙

0 投票
1 回答
2029 浏览

wpf - 使用没有默认构造函数的 XamlWriter 序列化 WPF 组件

我发现你可以序列化一个 wpf 组件,在我的例子中 a FixedDocument,使用XamlWriter和 a MemoryStream

然后将其取回:

但是,现在我也需要能够序列化 a DocumentPage。它缺少一个默认构造函数,这使得XamlReader.Load调用抛出异常。

有没有办法在没有默认构造函数的情况下序列化 wpf 组件?

0 投票
1 回答
965 浏览

.net - WPF:在运行时替换页面或用户控件的 XAML(两者都可以)?

我知道可以在运行时解析一个 XAML - 文件并创建一个 UIElement,我可以将其插入到我的页面网格中,没有问题。

但我真正想要的是替换我的页面或用户控件的整个 XAML,这也可能吗?

推理:

我想让我的应用程序的用户有机会运行应用程序(启动需要很长时间 - 由于一些遗留问题而无法缩短),并且只需在 Blend 中通过“ctrl + s”更新视图。

0 投票
1 回答
295 浏览

c# - XamlWriter/Reader -> 多个构造函数调用导致重复元素

我有点卡在这里。我正在使用一个拖放库,它通过 XamlWriter.Save() 对拖动的 UIElements 进行序列化。

现在我正在尝试拖放扩展网格的类的一些实例。在构造函数中,我将一些元素推送到可视化树中。当对象被反序列化并再次添加元素时,构造函数被调用(一次又一次取决于我拖放的频率)。可悲的是,如果我从构造函数中检索值,Children.Count 告诉我没有子元素。如果我从外部(通过 myGrid.Children.Count)检索它,它会给我更高的(不需要的)数量。

我应该使用其他任何功能来初始化视觉效果吗?或任何其他方式来防止这些重复?

谢谢和欢呼

0 投票
1 回答
90 浏览

xaml - 是否可以将 XAML 用于我自己的想法/框架?

你知道是否可以在 C# 中自己创建一个框架,利用 XAML 提供的好东西,例如依赖属性和数据绑定?

还是我必须自己从头开始创造一切?

0 投票
2 回答
1803 浏览

c# - XamlWriter 失去绑定 - 好的!但如何保持价值?(项目控制)

我知道标准的 XamlWriter 不会持久绑定。但真正令人讨厌的是绑定持有的当前值也没有被序列化。

我目前 - 真的很愚蠢 - 解决方法是创建一个 DependencyProperty fooProperty 和属性 foo。还有一个属性 foo2。然后 foo 的 Change-eventhandler 将其值写入 foo2。

你看:愚蠢。

有没有人有更好的解决方案?

干杯

-- 编辑回应托马斯 --

基本上你是对的。但是当使用 ItemsControl 时,它看起来有点不同:

如果您运行此测试应用程序并将光标移到不同的文本框上,您会发现序列化硬编码和直接绑定的值没有问题。相反,数据模板化绑定不会被序列化。

顺便说一句,使用代码生成的 ItemsSource 而不是 StaticReference 没有区别,只是测试了一下..

0 投票
1 回答
297 浏览

.net - 如何控制 XmlWriter 生成的 XML 文档中命名空间的前缀 - 生成的 XAML 带有 x:Type 标记扩展

我正在尝试从 XElements 生成 XAML。

但是,我对x:Type标记扩展有疑问。它无法解析前缀p:,因为我不知道如何强制输出 XAML 将前缀映射p到命名空间http://schemas.microsoft.com/winfx/2006/xaml/presentation

有没有办法控制如何生成 XML 命名空间的前缀?或者是否可以强制x:Type标记扩展采用 XML 命名空间名称而不是前缀?

0 投票
1 回答
2791 浏览

wpf - 为什么当我使用 ParserContext 时 XamlReader 会抛出异常?

这有效:

这会抛出XML 命名空间 'clr-namespace:Farm;assembly=Farm' 中不存在标签 'Pig'

为什么?

Farm 是调用应用程序。

0 投票
2 回答
3977 浏览

c# - 将事件/命令与 XamlReader 一起使用

我正在使用 XamlReader.Parse(string) 动态构建我的数据模板。我遇到的问题是我无法在使用 XamlReader 创建的任何控件上放置任何事件。在网上做了一些研究后,我了解到这是 XamlReader 的一个已知限制。

我对 WPF 中的命令了解不多,但我能以某种方式使用它们来获得相同的结果吗?如果有怎么办?如果没有,有什么方法可以处理我的代码中的事件,该事件来自使用 Xaml Reader 创建的控件?

下面是我创建的数据模板的示例。我在将托管此数据模板的窗口的代码隐藏中定义了 MenuItem_Click 事件处理程序。

尝试运行它时出现以下错误: System.Windows.Markup.XamlParseException 未处理:无法从文本“MenuItem_Click”创建“单击”。

0 投票
1 回答
725 浏览

c# - 在 C# 代码中构建 Silverlight DataTemplate

这可能会引起更大的抗议,但在 Silverlight 代码中构建 DataTemplate 似乎是不可能的。我知道使用 XamlReader.Load(string) 的一个选项,使用这种方法遇到了几个问题:

  1. 没有验证,一切都是在连接的字符串中完成的。我们都知道这很糟糕

  2. 必须包含任何必要的资源,因为这将在其自己的上下文中运行。这也很糟糕,尽管有一个合乎逻辑的解释,而不是一个表演停止者。

  3. 任何在 DataTemplate 中包含事件调用的尝试都将失败,并显示 InvalidOperationException: Invalid XAML for control: XamlReader.Load() 不接受事件处理程序。

No.3 对我来说似乎是一个表演者。如果有人对另一种/更好的方法提供一些线索、指示或想法,我将不胜感激。

在 WPF 中有一个 FrameworkElementFactory 可以提供帮助,但是在 Silverlight 中似乎没有补救措施。