2009-09-03 2 views
0

J'essaie de trouver le moyen le plus extensible pour montrer un FlowDocument à l'intérieur d'une fenêtre - juste un FlowDocument. J'ai:FlowDocumentScrollViewer ne défilera pas

<FlowDocumentScrollViewer x:Name="message" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Visible"> 

Puis dans le constructeur de la fenêtre, je mis le document du spectateur à un je charge de XAML (en code). Le XAML contient:

<FlowDocument xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Background="{x:Null}" 
      FontSize="12" FontFamily="Segoe UI" PagePadding="2"> 
<BlockUIContainer> 
    <BlockUIContainer.Resources> 
     <Style TargetType="{x:Type TextBlock}"> 
      <Setter Property="TextWrapping" Value="Wrap"/> 
     </Style> 
    </BlockUIContainer.Resources> 
    <StackPanel MaxWidth="200"> 
     <TextBlock Text="{Binding DefinedWord}" FontWeight="Bold" /> 
     <ListBox ItemsSource="{Binding Definitions}" 
       Style="{StaticResource InvisibleListBox}" Margin="0" 
       ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
       ScrollViewer.VerticalScrollBarVisibility="Disabled" 
       ScrollViewer.CanContentScroll="false"> 
... 

Peu importe ce que j'essaie, la FlowDocumentScrollViewer ne défile pas et je ne peux pas voir les parties tronquées du document. Est-ce que cela a quelque chose à voir avec le BlockUIContainer, ou est-ce qu'il me manque autre chose?

Répondre

0

J'ai finalement obtenu ce travail en mettant l'ListBox à l'intérieur du document à IsHitTestVisible="false", liant alors le Width d'un bloc de texte à l'intérieur du modèle ListBoxItem au ActualWidth du ListBoxItem.