2010-12-14 61 views
2

Je suis un peu un débutant WPF/XAML, donc c'est probablement une question très évidente.Relier FlowDocument à mon FlowDocumentScrollViewer

J'ai ajouté un nouvel élément à mon projet du type FlowDocument. Appelons-le CrappyFlowDocument.xaml:

<FlowDocument xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
       ColumnWidth="400" FontSize="14" FontFamily="Georgia"> 
    <Paragraph> 
     Woo, my first paragraph! 
    </Paragraph> 
</FlowDocument> 

je l'ai mis dans un fichier séparé parce que je veux éviter de mettre de gros blobs de texte au milieu de mon PrettyInfoWindow.

Maintenant, dans mon PrettyInfoWindow, je suis perplexe.

<FlowDocumentScrollViewer x:Name="flowDocViewer" Margin="0,0,0,0" Background="#FF414141" Zoom="80" VerticalScrollBarVisibility="Disabled" HorizontalScrollBarVisibility="Disabled" IsSelectionEnabled="False"> 
    <!-- What do I put here-abouts to get my CrappyFlowDocument.xaml to show? --> 
</FlowDocumentScrollViewer> 

Je ne peux pas trouver quoi que ce soit sur le net à propos de ce type de fonctionnalité « comprennent », mais probablement ma recherche-fu est horrible. Si ce n'est pas l'objectif d'un fichier FlowDocument.xaml, alors qu'est-ce que c'est?

Répondre

3

voici comment je le ferais:

premier, faites votre CrappyFlowDocument une ressource en ajoutant une clé et de le mettre dans un dictionnaire de ressources:

dans App.xaml:

<Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="CrappyFlowDocument.xaml" /> 
    </ResourceDictionary> 
</Application.Resources> 

dans votre CrappyFlowDocume fichier nt.xaml:

<ResourceDictionary> 
    <FlowDocument x:Key="MyCrappyFlowDoc" 
        ColumnWidth="400" 
        FontSize="14" 
        FontFamily="Georgia"> 
     <Paragraph> 
      Woo, my first paragraph! 
     </Paragraph> 
    </FlowDocument> 
</ResourceDictionary> 

alors, appelez directement comme propriété « Document » de FlowDocumentScrollViewer:

<FlowDocumentScrollViewer Margin="0,0,0,0" 
          Background="#FF414141" 
          Zoom="80" 
          VerticalScrollBarVisibility="Disabled" 
          HorizontalScrollBarVisibility="Disabled" 
          IsSelectionEnabled="False" 
          Document="{StaticResource MyCrappyFlowDoc}" /> 

Je ne suis pas au courant d'une façon plus facile de le faire, nous espérons que cela conviendra à votre

+0

J'ai vu la solution de dictionnaire de ressources ailleurs, mais je n'ai pas pu l'utiliser avec le flowdocument à sa place quand j'ai essayé. Est-ce que le dictionnaire de ressources irait dans Window.Resources, ou si je faisais quelque chose d'autre? – Stigma

+0

le mieux que vous pouvez faire est de le mettre dans vos ressources d'application. J'ai édité pour que vous puissiez voir ce que je veux dire – David

+0

J'ai raté votre réponse (je me demande toujours pourquoi SO a cessé de me donner des notifications lors de la navigation) mais heureusement je le vois maintenant. Je vais essayer de le faire quand j'aurai à ajuster ces documents de flux - pour le moment je me suis mis à les coder en dur dans mon Windows. :-(Donc, juste par curiosité ... quel est le but du type 'New-> Flow Document' Visual Studio offre? Il semble inutile de tout ce que j'ai vu jusqu'à présent. – Stigma