J'ai fait VerticalScrollBarVisibility="Disabled" parce que je ne veux pas que le contenu de la grille de données soit affiché au-delà de la hauteur assignée. Je ne peux pas voir la barre de défilement après avoir donné la déclaration ci-dessus, mais je peux toujours faire défiler vers le bas et voir les lignes. Merci de votre compréhension.
Réponses
Trop de publicités?Une fois que vous avez désactivé le VerticalScrollBarVisibility
pour votre DatGrid, vous devez désactiver la fonctionnalité de défilement du ScrollViewer comme suit :
ScrollViewer.CanContentScroll="False"
Mais lorsque vous le faites, assurez-vous que vous avez déjà défini une hauteur standard pour l'ensemble de votre DataGrid et pour les lignes de votre DataGrid de manière à ce que l'utilisateur puisse voir toutes les lignes que vous voulez qu'il voie, sinon les lignes coupées ne seront pas affichées et l'utilisateur ne pourra pas faire défiler la page vers le bas pour les voir.
J'espère que cela vous aidera.
Permet à la grille de données d'afficher tout son contenu (sans barre de défilement) :
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<DataGrid x:Name="DataGrid" />
</Grid>
Vous pouvez ensuite placer le résultat à n'importe quel endroit. Il se réduira aux dimensions du propriétaire.
La solution acceptée n'a pas fonctionné pour moi car j'avais besoin d'une sélection de lignes. J'ai résolu tous mes problèmes en désactivant le panoramique de la grille de données (pour le glissement de la souris) et en gérant les événements "key down" (pour le clavier). Dans la grille de données XAML :
ScrollViewer.PanningMode="None"
Et.. :
PreviewKeyDown="OnDatagridPreviewKeyDown"
Dans le code derrière :
private void OnDatagridPreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Right || e.Key == Key.Left)
e.Handled = true;
}
HTH.
Edit : Ma réponse s'applique aux colonnes mais tout est similaire pour les lignes.
Je voulais simplement ajouter une réponse qui s'applique aux colonnes. Il peut arriver que la grille de données défile jusqu'à des colonnes supplémentaires que vous préféreriez voir invisibles, en particulier si la hauteur est spécifiquement ajustée pour que les colonnes supplémentaires soient invisibles. J'ai simplement attaché un gestionnaire Loaded à la grille de données et j'ai fixé toutes les colonnes supplémentaires à une largeur de 0 et je les ai rendues invisibles.