0

Je n'arrive pas à afficher une barre de défilement horizontale pour une visionneuse de défilement WPF. Le ScrollViewer contient un contrôle utilisateur qui restitue dynamiquement son contenu en fonction d'un objet d'entrée qui peut donc être de taille variable. Lorsqu'il se rend lui-même, il définit la largeur et la hauteur du contrôle utilisateur comme étant la bonne taille.Barre de défilement horizontale pour WPF ScrollViewer jamais affichée

J'ai mis HorizontalScrollBarVisibility à Visible ce qui devrait le forcer à toujours être affiché mais il n'est jamais affiché. J'ai également essayé de jouer avec l'activation/désactivation CanContentScroll mais cela ne semble pas faire de différence.

Les barres de défilement verticales fonctionnent sans problème.

   ScrollViewer scroll = new ScrollViewer(); 
       scroll.HorizontalContentAlignment = HorizontalAlignment.Left; 
       scroll.VerticalContentAlignment = VerticalAlignment.Top; 
       scroll.HorizontalScrollBarVisibility = ScrollBarVisibility.Visible; 
       scroll.CanContentScroll = true; 
       Grid.SetRow(scroll, 1); 

       GalaxyViewer viewer = new GalaxyViewer(g); 
       viewer.HorizontalAlignment = HorizontalAlignment.Left; 
       viewer.VerticalAlignment = VerticalAlignment.Top; 
       viewer.HideShips(); 
       viewer.IsEditable = this.IsEditable; 
       viewer.GalaxyEdited += this._galaxyEditedHandler; 
       if (this._activePlayer > 0 && !this.IsEditable) viewer.ShowShipsForPlayer(this._activePlayer); 
       scroll.Content = viewer; 
       ScrollViewer.SetCanContentScroll(viewer, true); 
       ScrollViewer.SetHorizontalScrollBarVisibility(viewer, ScrollBarVisibility.Visible); 

       scroll.UpdateLayout(); 
       grid.Children.Add(scroll); 

Quelqu'un at-il des idées/solutions pour cela?

+0

Il est intéressant de la barre de défilement horizontale apparaît seulement quand je la forme – RobV

Répondre

0

trouvé la cause du problème - la barre de défilement est affichée mais je redimensionne automatiquement le contrôle contenant le spectateur de Scoll que la fenêtre a été redimensionnée et cela signifiait que la barre de Scoll horizontale était coupée de l'écran

+0

maximiser Pouvez-vous décrire votre solution avec plus de détails? Merci –

1
WPF Layout Controls - ScrollViewer 

La plupart du temps, nous ne connaissons pas la taille du contrôle, qui sera affiché dans les éboulis. Il est également possible de faire dépendre la résolution du produit car c'est la propriété de base de wpf. Ainsi, dans WPF, il existe un contrôle, à savoir ScrollViewer (propriété jointe), qui peut activer le défilement de ces contenus chaque fois que le contenu est diffusé dans la zone d'affichage.

<ScrollViewer HorizontalScrollBarVisibility="Visible" ScrollViewer.VerticalScrollBarVisibility="Visible"> 
     <Grid ScrollViewer.HorizontalScrollBarVisibility="Visible"> 
      <Grid RenderTransformOrigin="0.555,0.491"> 
       <Grid.RowDefinitions> 

        <RowDefinition Height="auto"></RowDefinition> 
        <RowDefinition Height="auto"></RowDefinition> 
        <RowDefinition Height="auto"></RowDefinition> 
        <RowDefinition Height="auto"></RowDefinition> 

       </Grid.RowDefinitions> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition ></ColumnDefinition> 
        <ColumnDefinition ></ColumnDefinition> 
        <ColumnDefinition ></ColumnDefinition> 
        <ColumnDefinition ></ColumnDefinition> 
        <ColumnDefinition ></ColumnDefinition> 
        <ColumnDefinition ></ColumnDefinition> 
        <ColumnDefinition ></ColumnDefinition> 
        <ColumnDefinition ></ColumnDefinition> 
       </Grid.ColumnDefinitions> 
    </Grid> 
    </ScrollViewer> 


Above example is a implementation of horizontal and vertical scrollbar in a wpf form. 

Barre de défilement verticale automatique dans WPF TextBlock?

Pour plus de détails S'il vous plaît visitez le site: http://wpfbugs.blogspot.in/2014/02/wpf-layout-controls-scrollviewer.html

Questions connexes