Я хочу иметь вертикальную полосу прокрутки на моей сетке, которая кажется достаточно простой, но по какой-то причине она просто не сработает. Когда я устанавливаю видимость VerticalScrollBarVisibility, он появляется, но ничего не делает. Когда он установлен на авто, он вообще не отображается.ScrollViewer не работает с сеткой в wpf
Я прочитал совет на этом веб-сайте, но он, похоже, не работает для меня. Я знаю, что строки должны быть установлены на фиксированную высоту или *, и у меня есть комбинация обоих. Я также попытался установить максимальную высоту сетки и высоту полосы прокрутки, как было предложено, но ни один из них не работал.
Вот как я это настроило (сетка внутри вкладки):
</TabItem.Header>
<ScrollViewer VerticalScrollBarVisibility="Auto">
<Grid Name="CSGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="400"/>
<ColumnDefinition Width="200"/>
<ColumnDefinition Width="200"/>
<ColumnDefinition Width="200"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="20"/>
<RowDefinition Height="5"/>
<RowDefinition Height="1"/>
<RowDefinition Height="20"/>
<RowDefinition Height="20"/>
<RowDefinition Height="20"/>
...
Я тогда большое количество строк, содержание которых я устанавливаю через C# код, если это делает разницу. Все высоты установлены на 20. После этого у меня также есть несколько прямоугольников и текстовых блоков в сетке, ничто из того, что я мог бы представить, было бы проблематичным - если бы они не изменили каким-то образом?
В коде добавить текст в строки следующим образом:
TextBlock hist1 = new TextBlock();
TextBlock hist2 = new TextBlock();
TextBlock hist3 = new TextBlock();
TextBlock hist4 = new TextBlock();
TextBlock hist5 = new TextBlock();
Строка [] allHist = File.ReadAllLines ("MedicalHistory.txt");
hist1.Text = allHist[0];
hist2.Text = allHist[1];
hist3.Text = allHist[2];
hist4.Text = allHist[3];
hist5.Text = allHist[4];
CSGrid.Children.Add(hist1);
CSGrid.Children.Add(hist2);
CSGrid.Children.Add(hist3);
CSGrid.Children.Add(hist4);
CSGrid.Children.Add(hist5);
Grid.SetColumn(hist1, 0);
Grid.SetColumn(hist2, 0);
Grid.SetColumn(hist3, 0);
Grid.SetColumn(hist4, 0);
Grid.SetColumn(hist5, 0);
Grid.SetRow(hist1, 5);
Grid.SetRow(hist2, 6);
Grid.SetRow(hist3, 7);
Grid.SetRow(hist4, 8);
Grid.SetRow(hist5, 9);
Любая помощь будет принята с благодарностью
Я не вижу содержание становится добавлен в ScrollViewer. Попробуйте что-то вроде ScrollViewer> и посмотрите, появляется ли оно или нет. –
srsyogesh
Мне сказали, что я обычно должен иметь большой размер внутри зрителя прокрутки, а затем установить желаемый размер для реального просмотра прокрутки –
Это было плохо, я удалил этот второй пример. Спасибо за советы. Да, это то, что я читал. У меня есть много в полосе прокрутки, но когда я устанавливаю максимальную высоту сетки, она обрезается, но полоса прокрутки по-прежнему не отображается ... – user3077913