Trong ứng dụng WPF của tôi, tôi có một Bảng điều khiển có chứa một số điều khiển bên trong chúng. Làm cách nào để thêm một Scrollbar vào ngăn xếp này.
Trong ứng dụng WPF của tôi, tôi có một Bảng điều khiển có chứa một số điều khiển bên trong chúng. Làm cách nào để thêm một Scrollbar vào ngăn xếp này.
Câu trả lời:
Đặt nó vào a ScrollViewer
.
Stackpanel không có cơ chế cuộn tích hợp nhưng bạn luôn có thể bọc StackPanel trong ScrollViewer
<ScrollViewer VerticalScrollBarVisibility="Auto">
<StackPanel ... />
</ScrollViewer>
StackPanel
thực hiện IScrollInfo
và cung cấp một số phương pháp liên quan đến cuộn. Bạn có chắc là nó không có bất kỳ loại cơ chế cuộn "tích hợp" nào không?
Nó hoạt động như thế này:
<ScrollViewer VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Disabled" Width="340" HorizontalAlignment="Left" Margin="12,0,0,0">
<StackPanel Name="stackPanel1" Width="311">
</StackPanel>
</ScrollViewer>
TextBox tb = new TextBox();
tb.TextChanged += new TextChangedEventHandler(TextBox_TextChanged);
stackPanel1.Children.Add(tb);
Đối với StackPanel được định hướng theo chiều ngang, việc đặt cả hai khả năng hiển thị của thanh cuộn một cách rõ ràng có tác dụng đối với tôi để có được thanh cuộn ngang.
<ScrollViewer VerticalScrollBarVisibility="Hidden" HorizontalScrollBarVisibility="Auto" >
<StackPanel Orientation="Horizontal" />
</ScrollViewer>
Nếu ý bạn là, bạn muốn cuộn qua nhiều mục trong ngăn xếp của mình, hãy thử đặt một lưới xung quanh nó. Theo định nghĩa, một bảng điều khiển có chiều dài vô hạn.
Vì vậy, hãy thử một cái gì đó như sau:
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<StackPanel Width="311">
<TextBlock Text="{Binding A}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}" FontStretch="Condensed" FontSize="28" />
<TextBlock Text="{Binding B}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}"/>
</StackPanel>
</Grid>
Bạn thậm chí có thể làm cho điều này hoạt động với ScrollViewer