在WPF FlowDocument中嵌入自定义控件

时间:2011-08-16 08:59:06

标签: c# .net wpf custom-controls flowdocument

有没有办法将自定义控件嵌入到flowdocument中并由FlowDocument查看器正确显示(将其导出到Xaml文本文件并由查看器打开)?

2 个答案:

答案 0 :(得分:4)

是使用BlockUIContainer或InlineUIContainer

<FlowDocument xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
          xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
          xmlns:l="clr-namespace:MyNamespace;assembly=MyAssembly">
    <BlockUIContainer>
        <l:MyCustomControl/>
    </BlockUIContainer>
</FlowDocument>

请注意,无论您的查看者需要访问+信任,都可以使用自定义控件中的程序集。最简单的方法是让查看器与控件位于同一个程序集中。

答案 1 :(得分:1)

如果通过自定义控件表示UserControl或从WPF控件继承的任何自定义控件,则不能:此自定义控件位于其自己的XML命名空间中,并且需要在程序集中部署代码。在尝试解析文件时,您的XAML阅读器无法访问它,也不会成功。

您只能使用Microfost提供的控件,并与查看器一起部署。也许可以让观众了解GAC中部署的程序集,但只有在您可以在客户端GAC中部署时,它才是解决方案。