- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的布局非常简单,看看:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" MinWidth="200"></ColumnDefinition>
<ColumnDefinition Width="5"></ColumnDefinition>
<ColumnDefinition Width="Auto" MinWidth="50"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Border Grid.Column="0"
BorderBrush="Red"
BorderThickness="2">
<!-- Any picture-->
<Image Source="/Resources/PreviewTest.png"></Image>
</Border>
<GridSplitter Grid.Column="1"
Width="5"
HorizontalAlignment="Center"
VerticalAlignment="Stretch"
ResizeBehavior="PreviousAndNext"></GridSplitter>
<Expander Grid.Column="2"
ExpandDirection="Left"
BorderBrush="RoyalBlue"
BorderThickness="2">
<!-- Any picture-->
<Image Source="/Resources/PreviewTest.png"></Image>
</Expander>
</Grid>
问题:当我将 GridSplitter 拖动到左侧时,右列从窗口边框中伸出,如动画所示。我发现当第三列的宽度设置为“自动”(Width="Auto"
)时会发生这种情况。如果我设置 Width="*"
GridSplitter
工作正常,第三个 Column
不会从窗口边框出去。那么为什么当 Width="Auto"
时会发生这种情况呢?
最佳答案
您的问题是由于您的其中一个 ColumnDefinition
设置为 Auto
引起的。发生的情况是,当第一列达到其 MinWidth
值时,它无法变得更小。但是,如果您不断移动 GridSlitter
,则右列必须增大。当你让它增长到任意大小时,你就会遇到当前的问题。
要解决此问题,您所需要做的就是将正确的 ColumnDefinition.Width
属性也设置为 *
值。这样,它就不能再脱离Grid
了。如果需要,您可以使用 ColumnDefinition.MaxWidth 属性控制列的最终大小。试试这个:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" MinWidth="200" />
<ColumnDefinition Width="5" />
<ColumnDefinition Width="*" MinWidth="50" />
</Grid.ColumnDefinitions>
<Border Grid.Column="0" BorderBrush="Red" BorderThickness="2">
<Image Source="/Resources/PreviewTest.png" />
</Border>
<GridSplitter Grid.Column="1" Width="5" HorizontalAlignment="Center" VerticalAlignment="Stretch" ResizeBehavior="BasedOnAlignment" />
<Expander Grid.Column="2" ExpandDirection="Left" BorderBrush="RoyalBlue" BorderThickness="2">
<Image Source="/Resources/PreviewTest.png" />
</Expander>
</Grid>
关于当列宽 ="Auto"时,WPF GridSplitter 出现奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24423896/
我希望 GridSplitter 使 TreeView 更大,以便更容易查看 TreeView 的内容。似乎找不到合适的地方放置分路器
我想要一个简单的 3 列网格,其中包含可调整大小的列和 80 的 MinWidth。 代码如下所示: 但它并没有以我想要和
我正在创建一个 3 列 UI,列之间有网格拆分器。我需要保存列的状态,这样如果用户关闭并重新打开应用程序,它看起来就像他们离开它一样。但我也试图让列按比例拆分——我的意思是,如果你拉伸(stretch
我想要一个带有两行和它们之间的分隔符的网格布局。行的最小高度应为 80 像素。 这段代码效果很好:
我有一个带有 3 列网格的应用程序。第一列和第二列之间的网格拆分器工作得很好。为了让分流器位于第二列和第三列之间,我为分流器创建了一个列。 (所以现在第三列实际上是第四列。) 当我调整其他列的大小时,
简单的 GridSplitter 在某种意义上表现得很奇怪,当我将它向左移动超出 MinWidth 时,另一列会无限扩展。我在这里缺少什么?
一旦使用 gridsplitter 调整网格大小,当其他行折叠时,该行 * 将不会回收空间。 我在主详细信息 View 中有以下三行网格。顶部有一个数据网格,中间有一个分割器,最后一行有一个内容控制
我有以下网格 我的GridSplitter位于第3行(第
我正在从 WinForms 迁移到 WPF,我需要自定义绘制一个 gridsplitter,如下所示。这是我的 WinForms 实现: 在 WinForms 中很容易实现。我继承自 Splitter
我刚开始尝试使用 gridsplitter 并偶然发现了一个非常奇怪的行为,我似乎无法修复它。显然其他人也有类似的问题(根据谷歌),但没有任何有用的评论。 我有一个包含 2 行的网格。启动时,底部的
我是 WPF 新手。我这样声明我的 Grid: 我基本上希望宽度为 5 的第
我是 WPF 的新手,遇到了一个小但令人沮丧的问题。 我有一个包含两行和两列的网格。第一行包含一个菜单栏,第二行包含左侧的一列(包含一个列表框)和右侧的一列(包含一个列表框)。 它还包含一个 Grid
我有这个: 我正在尝试保存和恢复拆分器位置。我正在使用 grid.C
使用下面的 XAML,当我将 GridSplitter 向左拖动时,它会将元素推出窗口。 如何将所有元素保留在窗口框架内?
我有以下 XAML:
我是 wpf 的初学者,今天我遇到一个奇怪的问题,如果我向网格列添加动画,gridsplitter 停止工作,下面是代码片段,这是一个毫无意义但很简单的测试代码,除了当鼠标进入右列,宽度从15扩大到1
我正在使用 GridSplitter在我的 WPF 应用程序中,并希望将其设置为代码中的特定初始位置。我被 GridSplitter 的行为困住了将特定值设置为 Height 时关联的属性 RowDe
我有一个由 GridSplitter 分隔的 2 列的网格,使用以下 XAML 代码: 问题:右侧列的 MinWid
我正在使用 Microsoft.Toolkit.Uwp.UI.Controls 中的 GridSplitter。在用户使用网格拆分器调整两列大小后,是否有办法重置调整大小并使网格的列宽恢复到调整大小之
我希望使用网格作为我的顶级布局。网格将有 1 列和 n 行。网格中的每一行还应包含一个 3 列 1 行的网格。第二列是 GridSplitter,我尝试使用 SharedSizeGroup,以便更改所
我是一名优秀的程序员,十分优秀!