【发布时间】:2011-11-22 20:12:24
【问题描述】:
我正在使用XamlReader 成功加载一个xaml 文件并创建一个FrameworkElement 来使用。
我正在加载的 xaml 中包含绑定表达式,例如:
<TextBlock Text="{Binding DataContextTextProperty}" />
如果我将从 XamlReader.Load() 返回的 FrameworkElement 放入 WPF 窗口,则绑定一切正常。
但是,在这种情况下,我使用的是Laurent Bugnion's excellent article on creating PNGs from WPF/XAML。由于XamlReader.Load() 的结果是通过VisualBrush 直接写入PNG,因此似乎绕过了WPF 调用绑定表达式的必要机制。
这让我相信实际的绑定并没有真正通过调用 XamlReader.Load() 被调用,或者它们没有工作是因为我不知道与没有可视化树有关的事情直到您将 FrameworkElement 添加到现有的可视化树或其他东西。
我可以做些什么来确保调用这些绑定吗?
非常感谢。
【问题讨论】:
-
我确实认为 View 需要布局和渲染通道才能将其作为图像写入,并且只有当我们将其加载到可视化树上时才有可能。如果我错了,请纠正我。尽管带有 FlowDocument 的 XamlWriter 有点不同。
-
@AngelWPF 我设法解决了它并在下面发布了答案。它似乎确实表现得像我想要的那样,所以如果我没有犯一些幼稚的错误,我会继续这样做。我无法告诉你我有多么轻松地完成这项工作......
标签: c# wpf xaml binding xamlreader