Я новичок в .NET MAUI.
У меня есть представление прокрутки, и внутри представления прокрутки у меня есть макет вертикального стека с двумя элементами, меткой и кнопкой.
<ScrollView>
<VerticalStackLayout
x:Name = "Stack"
Spacing = "25"
Padding = "30,0"
VerticalOptions = "Center">
<Label
Text = "Hello, World!"
SemanticProperties.HeadingLevel = "Level1"
FontSize = "32"
HorizontalOptions = "Center" />
<Button
x:Name = "ThirdButton"
Text = "Create Label"
Clicked = "OnCreateClicked"
HorizontalOptions = "Start" />
</VerticalStackLayout>
</ScrollView>
Когда кнопка нажата, я динамически добавляю метки в стек.
private void OnCreateClicked(object sender, EventArgs e)
{
Label label = new Label { Text = "This is a new label" };
Stack.Add(label);
}
Я ожидаю, что когда размер содержимого StackLayout больше размера ScrollView, появится полоса прокрутки, и я смогу прокручивать представление.
Однако этого не происходит. Мне нужно изменить размер окна хотя бы на несколько пикселей, чтобы появилась полоса прокрутки и можно было прокручивать представление.
С использованием:
макОС 13.1 Visual Studio 2022 для Mac .NET 7
Целевая платформа: Mac (MacCatalyst)
Я пробовал безуспешно:
Я также искал документацию для любого другого решения, но не нашел.
Я был бы признателен за любую помощь.
Спасибо.
@tataelm да, ScrollView находится непосредственно внутри ContentPage
Вы можете попробовать следующий код:
В .xaml назовите Scrollview
<ScrollView x:Name = "myscroll">
Затем в файле .cs при добавлении метки:
private void OnCreateClicked(object sender, EventArgs e)
{
Label label = new Label { Text = "This is a new label" };
Stack.Add(label);
// Signals that the measure value of this View must be recomputed
(myscroll as IView).InvalidateMeasure();
}
Надеюсь, это сработает для вас.
Спасибо. Это решило проблему для меня.
этот вид прокрутки находится непосредственно внутри страницы содержимого или внутри любого другого элемента управления, который может на него повлиять?