ในแอปพลิเคชัน WPF ของฉันฉันมี Stackpanel ที่มีตัวควบคุมหลายตัวอยู่ภายใน ฉันจะเพิ่มแถบเลื่อนลงในสแต็กพาแนลนี้ได้อย่างไร
ในแอปพลิเคชัน WPF ของฉันฉันมี Stackpanel ที่มีตัวควบคุมหลายตัวอยู่ภายใน ฉันจะเพิ่มแถบเลื่อนลงในสแต็กพาแนลนี้ได้อย่างไร
คำตอบ:
ใส่ลงในไฟล์ScrollViewer
.
Stackpanel ไม่มีกลไกการเลื่อนในตัว แต่คุณสามารถรวม StackPanel ใน ScrollViewer ได้ตลอดเวลา
<ScrollViewer VerticalScrollBarVisibility="Auto">
<StackPanel ... />
</ScrollViewer>
StackPanel
ไม่ดำเนินการIScrollInfo
และข้อเสนอจำนวนของวิธีการที่เกี่ยวข้องกับการเลื่อน คุณแน่ใจหรือไม่ว่าไม่มีกลไกการเลื่อน "ในตัว" ใด ๆ
การทำงานเช่นนี้:
<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);
สำหรับ StackPanel ที่เน้นแนวนอนการใส่ทั้งการมองเห็นแถบเลื่อนอย่างชัดเจนทำให้ฉันได้รับแถบเลื่อนแนวนอน
<ScrollViewer VerticalScrollBarVisibility="Hidden" HorizontalScrollBarVisibility="Auto" >
<StackPanel Orientation="Horizontal" />
</ScrollViewer>
หากคุณหมายถึงคุณต้องการเลื่อนดูรายการต่างๆในแผงสแต็กพาเนลของคุณลองวางเส้นตารางไว้รอบ ๆ ตามความหมายแผงสแต็กมีความยาวไม่สิ้นสุด
ลองทำสิ่งนี้:
<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>
คุณสามารถทำให้มันใช้งานได้กับ ScrollViewer