【问题标题】:WPF expander not expanded above buttons make buttons unclickableWPF 扩展器未在按钮上方展开使按钮无法点击
【发布时间】:2015-08-30 15:24:30
【问题描述】:

在 WPF 表单中,我有一个扩展器,可以在其他控件(例如按钮)之上扩展:

<Expander Grid.Row="0" Panel.ZIndex="99" Name="searchMenuExpander" Header="Search menu" FontWeight="Bold" HorizontalAlignment="Stretch" Margin="10,10,0,0" MinWidth="510" MinHeight="200" VerticalAlignment="Top" Foreground="MidnightBlue" Cursor="Arrow">
    <Grid Background="White">
        <Border HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
        <TextBlock Text="Name" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="20,10,0,0" Width="65" Height="20" Cursor="Arrow" />
        <TextBox Name="nameSearchTextBox"  HorizontalAlignment="Left" VerticalAlignment="Top" Margin="115,10,0,0" Width="100" Height="20"/>
    </Grid>
</Expander>
<Button Content="Button" Height="34" Width="85"/>

我的问题是扩展器后面的控件不再可点击,即使扩展器未展开也是如此。怎么了?我怎样才能摆脱这个错误?

【问题讨论】:

  • 包裹Expander的父控件是什么?
  • 按钮的画布定位的目的是什么?
  • 父控件只是一个网格。忘记画布,它是更大代码的一部分,但在这里无关紧要。我编辑了我的问题以将其删除

标签: wpf xaml clickable expander


【解决方案1】:

假设您有一个 Grid 是您的 Expander 和您的 Button 的父级,您需要将 Button 放在不同的行上。

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition />
    </Grid.RowDefinitions>
    <Expander Grid.Row="0">
    </Expander>
    <Button Grid.Row="1" />
</Grid>

通过将第一行(包含扩展器)的Height设置为Auto,您可以确保在扩展器未扩展时将其最小化(仅扩展器的标题部分会占用空间) .

【讨论】:

  • 感谢您的回答。我试过了,但不幸的是这不起作用。如果我将其高度设置为自动,则该错误仍在发生。如果我将它设置为一个整数值,它可以工作,但是通过向下移动按钮。我只想让扩展器在按钮上方展开。
  • 问题在于使用画布来定位按钮,它会覆盖任何容器逻辑(例如网格行/列)。
【解决方案2】:

我找到了一种方法,背后有代码。我将Expander 放在Canvas 中,并在Expander 中添加了两个事件:

Expanded="searchMenuExpander_Expanded"Collapsed="searchMenuExpander_Collapsed" 定义为:

    private void searchMenuExpander_Expanded(object sender, RoutedEventArgs e)
    {
        Canvas.SetZIndex(searchMenuCanvas, 99);
    }

    private void searchMenuExpander_Collapsed(object sender, RoutedEventArgs e)
    {
        Canvas.SetZIndex(searchMenuCanvas, 0);
    }

【讨论】:

    猜你喜欢
    • 2020-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多