是否可以增加从用户可以抓取的网格分离器的距离?增加WPF GridSplitter鼠标抓取阈值
我的分配器宽度只有1px。我希望能够从更远的距离抓住分离器。
因为现在我必须将鼠标指向确切的1px行来抓取它。
而且分离器还必须在宽度
是否可以增加从用户可以抓取的网格分离器的距离?增加WPF GridSplitter鼠标抓取阈值
我的分配器宽度只有1px。我希望能够从更远的距离抓住分离器。
因为现在我必须将鼠标指向确切的1px行来抓取它。
而且分离器还必须在宽度
被1像素,您可以同时保持它看起来像它的小改GridSplitter
的实际大小。这会给你一个7像素宽度的区域抓住它在1个像素,同时显示:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="1"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<GridSplitter Grid.Column="1"
Margin="-3,0"
BorderThickness="3,0"
BorderBrush="Transparent"
HorizontalAlignment="Stretch" />
</Grid>
的例子是使用的给分流了自己的专栏,但同样的原则方法,如果它向左或向右排列的应用一个共享列。
我无法获得John Bowen的解决方案。它看起来像它的工作,但它似乎像分离器只有1像素的抢占空间。
我落得这样做:
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Stackpanel Grid.Row="0"/>
<GridSplitter
Grid.Row="1"
HorizontalAlignment="Stretch"
BorderBrush="DarkGray"
Height="6"
Background="Transparent"
BorderThickness="0,1,0,0"
Margin="0,0,0,-4"/>
<Stackpanel Grid.Row="2"/>
</Grid>
这使分离器高度为6个像素,但仅显示了1个像素顶部边界线。您使用((高度/ 2) - 1)的负底部边距以便将该顶部边距线居中在该行中间。
背景是透明的,否则你会看到6个像素的灰色或w/e的默认颜色是。如果您使用Blend挖掘GridSplitter的控件模板,您会发现它只是一个带边框的样式的Rectangle或类似的东西。
这种技术的问题是它把灰线放在6个像素区域的顶部,你可以抓住灰线。你确定你没有简单地忘记翻译约翰的答案从垂直到水平的一些值吗?这适用于我(5个像素区域抓取,区域中心灰线):'
这是正确的,但我不得不改变网格的ZIndex,因为它的右侧被DockPanel隐藏。 – ErikTJ 2010-03-16 20:57:47
保证金=“ - 3,0”的目的是什么?你希望水平分离器左对齐在7像素区域而不是居中? – 2015-12-08 22:42:05
负边距为3 px透明边框在任一侧创建额外空间以填充布局。如果没有这些分割器,只有1 px列可以渲染。 – 2015-12-15 18:56:50