如何将控件扩展到父级边界之外?
How to expand a control beyond the parent's bounds?
我试图在单击切换按钮时弹出一个列表框。在后面的代码中,我使用 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。这使滚动条出现(虽然是水平滚动条,这本身有点出乎意料)但所有内容仍然被裁剪到切换框的边界。
我还需要设置什么?或者我是否以错误的方式处理它(如:我应该在切换按钮的子标签内为模板、触发器等定义组合框)吗?
如果您不希望列表框位于 切换按钮内,则不应将其放置在切换按钮内。将它放在切换按钮之外,它应该可以工作。也许您应该看看 Expander
控件,它似乎可以满足您的需要。它仍然不会使扩展器主体大于扩展器。
还有一点要注意:设置固定大小是不好的风格。尝试使用 Grid 和各种面板等容器对 window 进行分区,您将不需要固定大小。如果您的切换按钮没有固定大小,它可以在内容需要扩展时扩展。
我试图在单击切换按钮时弹出一个列表框。在后面的代码中,我使用 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。这使滚动条出现(虽然是水平滚动条,这本身有点出乎意料)但所有内容仍然被裁剪到切换框的边界。
我还需要设置什么?或者我是否以错误的方式处理它(如:我应该在切换按钮的子标签内为模板、触发器等定义组合框)吗?
如果您不希望列表框位于 切换按钮内,则不应将其放置在切换按钮内。将它放在切换按钮之外,它应该可以工作。也许您应该看看 Expander
控件,它似乎可以满足您的需要。它仍然不会使扩展器主体大于扩展器。
还有一点要注意:设置固定大小是不好的风格。尝试使用 Grid 和各种面板等容器对 window 进行分区,您将不需要固定大小。如果您的切换按钮没有固定大小,它可以在内容需要扩展时扩展。