WPF扩展器扩展/折叠

时间:2014-04-16 13:11:39

标签: wpf vb.net wpf-controls expander

嘿所有我想弄清楚为什么我的扩展器第二次点击它时不会扩展。换句话说,当我第一次点击并展开时,点击第二次然后折叠,然后第三次点击它,它就不会打开。

我有一个扩展器,在扩展器内部是一个文本框。这是我用来打开它并关闭它的代码:

Private Sub expanderFocus(sender As Object, e As RoutedEventArgs)
    ticketCurrentExpander = sender

    ticketCurrentTextBox = ticketMyTextBoxes(textBoxNum)
    ticketCurrentExpander.Background = New SolidColorBrush(Colors.White)
    ticketCurrentExpander.Height = 250
    ticketCurrentExpander.IsExpanded = True
    Canvas.SetZIndex(ticketCurrentExpander, 1000)
End Sub

Private Sub expanderLostFocus(sender As Object, e As RoutedEventArgs)
    ticketCurrentExpander.IsExpanded = False
    ticketCurrentExpander.Height = 24
    Canvas.SetZIndex(ticketCurrentExpander, 0)
    e.Handled = True
End Sub

我发现高度属性是导致问题的原因,它没有在第三次点击时显示。我没有想出如何展示它而不必定义盒子的高度。如果我没有指定高度,那么当我点击它时,该框永远不会打开。

我会失踪什么?

1 个答案:

答案 0 :(得分:1)

我无法准确地告诉你你的问题是什么,或者你的代码示例是否可以重现,但我可以告诉你,有一种更简单的方法来控制Expander的开启和关闭控制。如果数据将Expander.IsExpanded属性绑定到视图模型中的bool属性,则可以通过设置属性来打开和关闭Expander

请参阅此基本示例,为简单起见,为bool的{​​{1}}属性交换了上述IsChecked属性:

ToggleButton