在XAML中,如何调整控件或显示部分的大小,就像抓取和调整Visual Studio中的工具箱,解决方案资源管理器或错误列表等不同面板的方式一样?
在这个组成的例子中。 。 。
<Window x:Class="UI_Experiments_1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<DockPanel x:Name="Tab3DockPanel" Background="#FFA0FFA0" LastChildFill="True">
<ScrollViewer DockPanel.Dock="Left" Background="Lavender">
<TextBlock Height="60" TextWrapping="Wrap" Background="#FFFFDDDD" Width="140">
ScrollViewer - DockPanel.Dock="Left"
</TextBlock>
</ScrollViewer>
<TextBlock DockPanel.Dock="Top" HorizontalAlignment="Center"
TextWrapping="Wrap" Background="LemonChiffon">
DockPanel.Dock="Top" HorizontalAlignment="Center"
</TextBlock>
<ListBox DockPanel.Dock="Right" Background="#FFCCEEFF">
ListBox DockPanel.Dock="Bottom"
</ListBox>
</DockPanel>
</Window>
。 。 。我有一个DockPanel,左边是一个ScrollView,底部是一个ListBox,顶部是一个TextBlock。有没有办法将调整大小手柄附加到这些以达到相同的效果,或者是否有其他控件可以嵌入这些?正如我所说,上面只是一个试验的例子 - 我不在乎我是否使用那些精确的控件。
我确实找到了一个在MSDN上使用Adorner添加调整大小句柄的示例,但它涉及超过170行C#代码,所以在采用之前我想确保在XAML中没有内在的方法来实现这一点。
提前致谢。
答案 0 :(得分:15)
您可以使用GridSplitter您需要做的是使用Grid进行布局,然后使用GridSplitter调整列或行的大小。
以下是How to: Create User-Resizable Applications with GridSplitter
的示例答案 1 :(得分:12)
不是您要求的确切控件而是样品。需要一个分离器,左右是什么*和包含的控制拉伸。
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBox Grid.Row="0" Grid.Column="0"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Text="TexBox" />
<GridSplitter Grid.Row="0" Grid.Column="1" Margin="2,0,2,0"
Width="3" Background="Purple"
VerticalAlignment="Stretch"
HorizontalAlignment="Center" />
<ListView Grid.Row="0" Grid.Column="2" Background="Aqua"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"/>
</Grid>