【发布时间】:2015-11-13 08:25:30
【问题描述】:
我有一个带有 tabControl 的窗口,其中有 2 个边框。 在第一个边框中,我有一个带有一些按钮的列表框。 一切都很好,但我必须添加用户通过最大化或手动拖动来调整大小的功能。 所以第一个边框总是占窗口的 33%,第二个占 66%。
当变大时,您可以看到两个边框重叠,这是错误的,甚至包含按钮的列表框也不会调整大小。
这是我的 xaml
<Grid>
<Grid.Background>
<ImageBrush ImageSource="/EasyRun2.0;component/Resources/Images/gradientWallpaper.jpg"/>
</Grid.Background>
<TextBlock Text="{Binding WelcomeMessage}" HorizontalAlignment="Center" VerticalAlignment="Center" FontWeight="Bold" Margin="428,128,99.6,228"/>
<StackPanel Orientation="Vertical" VerticalAlignment="Bottom" Margin="0,0,0,20">
</StackPanel>
<TabControl TabStripPlacement="Left" Margin="0,0,-0.4,0" Background="{x:Null}">
<TabItem Header="" Height="80" FontSize="50" Background="{x:Null}" >
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Border x:Name="Border1" BorderBrush="Gainsboro" BorderThickness="5" CornerRadius="8,8,3,3" Margin="10,10,168.8,10.4" >
<ListBox x:Name="lbButtons" Background="{x:Null}" BorderBrush="{x:Null}" Margin="10,10,10,10" Loaded="lbButtons_Loaded"/>
</Border>
<Border x:Name="Border2" BorderBrush="Gainsboro" BorderThickness="5" CornerRadius="8,8,3,3" Grid.ColumnSpan="2" Margin="263,10,9.2,10" />
</Grid>
</TabItem>
<TabItem Header="" Height="80" FontSize="50">
<TabItem.Background>
<ImageBrush/>
</TabItem.Background>
</TabItem>
<TabItem Header="" Height="80" FontSize="50" Background="{x:Null}" >
<Button x:Name="ButtonAdd" Content="+" Tag="ADD" Background="{x:Null}" Click="Button_Click"/>
</TabItem>
</TabControl>
</Grid>
提前致谢 帕特里克
【问题讨论】:
-
使用 HwndSource.AddHook() 来拦截WM_SIZING message。
-
@HansPassant 这是 C# WPF 方法吗?
-
您是否尝试过使用 GridSplitter? afaik 这正是你所需要的