C# Wrappanel和scrollviewer问题
我需要显示C# Wrappanel和scrollviewer问题,c#,wpf,scrollviewer,.net,wrappanel,C#,Wpf,Scrollviewer,.net,Wrappanel,我需要显示按钮,用户可以使用这些按钮添加控件按钮按组分类。这是我正在使用的XAML- <ScrollViewer VerticalScrollBarVisibility="Auto"> <GroupBox Name="maingroup" Header="Click To Add Controls" BorderBrush="Transparent"> <Grid>
按钮
,用户可以使用这些按钮添加控件<代码>按钮按组分类。这是我正在使用的XAML-
<ScrollViewer
VerticalScrollBarVisibility="Auto">
<GroupBox
Name="maingroup"
Header="Click To Add Controls"
BorderBrush="Transparent">
<Grid>
<Grid.RowDefinitions>
<RowDefinition
Height="*" />
<RowDefinition
Height="90" />
</Grid.RowDefinitions>
<GroupBox
Grid.Row="0"
Name="groupVarControls"
Header="{Binding Path=GroupBoxHeaderText, Mode=OneWay}">
<ScrollViewer
HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Hidden">
<WrapPanel
Margin="7,7,0,0"
AllowDrop="False">
<syncfusion:RibbonButton
SizeForm="Large"
Name="BarControl"
LargeIcon="Images\Bar.png"
Label="Bar"
AllowDrop="True">
</syncfusion:RibbonButton>
<!-- 10 More buttons -->
</WrapPanel>
</ScrollViewer>
</GroupBox>
<GroupBox
Grid.Row="1"
Name="groupVarControls2"
Visibility="{Binding Path=GroupBoxVisibility, Mode=OneWay}"
Header="Click to Add control">
<ScrollViewer
VerticalScrollBarVisibility="Hidden"
HorizontalScrollBarVisibility="Auto">
<WrapPanel
Margin="7,7,0,0"
AllowDrop="False">
<syncfusion:RibbonButton
SizeForm="Large"
Name="ClockControl"
AllowDrop="False"
LargeIcon="Images\Clock.png"
Label="Clock"
Click="ClockControl_Click" />
<!-- More buttons -->
</WrapPanel>
</ScrollViewer>
</GroupBox>
</Grid>
</GroupBox>
</ScrollViewer>
我想要一个垂直的滚动条
,它既适用于包装条
,也适用于单个水平的滚动条
。由于此XAML滚动条无法正确显示,ScrollViewer
会导致包装被“禁用”,它只会将我的控件保留在单个行(或列
)中,并立即使用滚动条
我不能给WrapPanel
指定一个固定的widt
,因为此控件将显示在DockPanel
(类似于VS工具箱)中,用户可以查看它
有什么想法吗?此代码将在需要时显示一个垂直滚动条和两个水平滚动条。在代码中,需要将包裹面板的MinWidth设置为最宽子面板的宽度。在处理用户添加或删除控件的代码中,您可能很容易做到这一点
<ScrollViewer
VerticalScrollBarVisibility="Auto">
<StackPanel>
<GroupBox Header="Box 1">
<ScrollViewer
VerticalScrollBarVisibility="Hidden" HorizontalScrollBarVisibility="Auto">
<WrapPanel
MinWidth="200"
Width="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ScrollViewer}}, Path=ActualWidth}">
<Button Width="200" Height="50" />
<Button Width="150" Height="50" />
<Button Width="160" Height="50" />
<Button Width="170" Height="50" />
<Button Width="180" Height="50" />
</WrapPanel>
</ScrollViewer>
</GroupBox>
<GroupBox Header="Box 2">
<ScrollViewer
VerticalScrollBarVisibility="Hidden" HorizontalScrollBarVisibility="Auto">
<WrapPanel
MinWidth="200"
Width="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ScrollViewer}}, Path=ActualWidth}">
<Button Width="200" Height="50" />
<Button Width="150" Height="50" />
<Button Width="160" Height="50" />
<Button Width="170" Height="50" />
<Button Width="180" Height="50" />
</WrapPanel>
</ScrollViewer>
</GroupBox>
</StackPanel>
</ScrollViewer>