在FlowDocument中启用嵌入式控件

时间:2020-03-05 18:58:06  来源:igfitidea点击:

我在标准WPF应用程序窗口中有一个FlowDocument,其中有一些文本,在此文本中有一些超链接和按钮。

问题是,如果我将这个FlowDocument放在FlowDocumentPageViewer之外的任何东西中,则超链接和按钮被禁用("变灰")。

<FlowDocumentScrollViewer>
  <FlowDocument>
      <Paragraph>
        Hello, World!
        <Hyperlink NavigateUri="some-uri">click me</Hyperlink>
        <Button Click="myButton_Click" Content="Click me too!" />
      </Paragraph>
  </FlowDocument>
</FlowDocumentScrollViewer>

上面的将起作用,并且该链接将是可单击的。但是,我不希望使用完整的pageviewer,因为它将显示导航按钮(后退/前进)缩放,并且列的行为也很奇怪。

我希望在简单的FlowDocumentScrollViewer中使用它(或者其他只显示文本而不会产生额外绒毛的东西)。

编辑:
问题不只是超链接。如果FlowDocument位于FlowDocumentScrollViewer内部,则与IsEnabled属性无关的用户可以与之交互的任何控件(如Button,ListBox,ComboBox)都将显示为灰色。

编辑2:
好吧,这一定是一个错误,或者从我的角度来看是什么,因为我最终重写了控件,现在它可以工作了。我想如果某种原因在视觉树中的某个位置IsEnabled = False导致了这种情况。

解决方案

回答

我想知道我们是否会遇到这样的事情?

<TextBlock>
<Hyperlink>
    <Run Text="Test link"/>
</Hyperlink >
</TextBlock>

回答

我正在使用FlowDocumentScrollViewer作为我的"关于"框:

<FlowDocumentScrollViewer VerticalScrollBarVisibility="Auto">
    <FlowDocument>
        <Paragraph>
            <!-- ... -->

我没有我们提到的任何控件或者问题。