如何扩展控件超出父级的范围?

时间:2015-01-03 15:57:18

标签: wpf xaml combobox

单击切换按钮时,我正在尝试弹出一个列表框。在后面的代码中,我使用 Visibility 属性并将其设置为 Visibility.Visible 。但是,虽然列表框出现在屏幕上,但它会被裁剪为切换框(30x30)的大小,而不是按照我的意愿,它自己的大小(99x99)。

<ToggleButton HorizontalAlignment="Left" Margin="0,0,0,0"
              VerticalAlignment="Top" Width="30" Height="30"
              Click="ButtonBase_OnClick">
  <ListBox x:Name="listBox1"
           ClipToBounds="False" 
           Visibility="Collapsed"
           HorizontalAlignment="Left"
           Height="99" 
           VerticalAlignment="Top" 
           Width="99">
    <CheckBox x:Name="checkBox3" Content="CheckBox"/>
    <CheckBox x:Name="checkBox4" Content="CheckBox"/>
  </ListBox>
</ToggleButton>

我已尝试将属性 ClipToBounds 设置为 false ,但它没有给出太多变化。我还尝试将组合框的高度设置为 Auto 。这使得一个滚动条出现(虽然水平,但本身有点出乎意料)但是一切仍然被裁剪到切换框的边界。

我需要设置更多?或者我是以错误的方式接近它(如:我应该在切换按钮的子标签中定义模板,触发器和不是什么的组合框?)

1 个答案:

答案 0 :(得分:2)

如果您不希望列表框内部切换按钮,则不应将其放在切换按钮内。将它放在切换按钮之外,它应该工作。也许你应该看看Expander控件,它似乎可以满足您的需要。它仍然不会使膨胀机体比膨胀机大。

需要注意的是:设置固定尺寸是不好的风格。尝试使用Grid和各种面板之类的容器对窗口进行分区,您不需要固定大小。如果您的切换按钮没有固定大小,则当内容需要扩展时,它可能会扩展。