2011-08-13 54 views
0

我有一个Grid布局。在一行中,我有一个Border并在其内部有一个ToggleButton(负左边距,因此它出现在边界的一半以外)。我已将DropShadowEffect添加到边框。似乎某些东西正在剪裁边界之外的阴影效果和切换按钮。请参阅下面的代码和图像。边框周围的未知裁剪

<Grid Margin="0"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="140*" /> 
      <RowDefinition Height="500"/> 
     </Grid.RowDefinitions> 
     <Grid Grid.Row="0" Background="LightGray"> 
      <Border Background="{StaticResource BorderFill}" Height="150" Width="400" HorizontalAlignment="Center" VerticalAlignment="Bottom" Margin="20,0,20,10" BorderBrush="#FF999999" BorderThickness="1"> 
       <Border.Effect> 
        <DropShadowEffect Color="Gray" BlurRadius="40" ShadowDepth="0.1"/> 
       </Border.Effect> 
       <ToggleButton Click="MenuToggleButtonClick" Margin="-6.5,0,0,5" Style="{StaticResource ExpandCollapseButtons}" Width="Auto" Height="Auto" x:Name="MenuToggleButton" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Left" VerticalAlignment="Bottom" /> 
      </Border> 
     </Grid> 

clipping of shadow and button

左边的红色箭头显示了按钮被限幅和右红色箭头显示了阴影效果是越来越裁剪。到底是怎么回事?我怎样才能解决这个问题?

回答

0

看起来这个剪裁只发生在没有足够的空间用于内部Grid加上它的边距。如果我将浏览器窗口调整得足够小,我能够在屏幕截图中重现该行为。

在你的情况下,它看起来没有足够的高度。如果没有足够的宽度,会发生类似的效果。

我不知道为什么这个边框剪裁正在发生。但是,我发现如果 我将MinWidth="440"MinHeight="160"(内部网格的宽度和高度加上其边距)的属性添加到外部Grid,无论我调整浏览器窗口的大小有多小,我都无法再重新生成剪辑方向。

+0

美丽。谢谢! – Aks

+0

如果我不能给网格行整个空间,并需要部分隐藏? – Aks

+0

@Aks:你可以尝试在另一个Grid中包装外部'Grid',也许? –