如何实现stackpanel的点击事件

本文关键字:事件 stackpanel 何实现 实现 | 更新日期: 2023-09-27 18:22:42

我在这里检查了stackpanel类http://msdn.microsoft.com/en-us/library/system.windows.controls.stackpanel.aspx并且它没有点击事件。

我正在开发一款windows phone 8应用程序,在堆栈面板上有一个文本框和一些按钮。我想包括一个功能,可以单击stackpanel,然后将其上控件的可见性设置为折叠,然后当再次单击时,它们将变为可见。

我该怎么做?

如何实现stackpanel的点击事件

尝试使用MouseLeftButtonUp事件。

您可以将整个堆叠面板包装在一个按钮中:

<button>
    <stackpanel>
    </stackpanel>
</button>

然后将单击事件或命令附加到您认为合适的按钮上。

StackPanel置于Border控件内,使用BorderMouseLeftButtonUp处理事件,并将Border的背景设置为#000001

你可以用一种稍微棘手的方式来解决这个问题,如果它很好,那也没关系,否则我会发布另一个。

 <StackPanel Background="Red" MinHeight="80"  VerticalAlignment="Top" Tap="StackPanel_Tap_1" Orientation="Horizontal">
            <Button x:Name="btn1" Content="Button"/>
            <Button x:Name="btn2" Content="Button"/>
            <TextBox Height="72" x:Name="textbox1" TextWrapping="Wrap" Text="TextBox" Width="456"/>
        </StackPanel> 


 private void StackPanel_Tap_1(object sender, GestureEventArgs e)
    {

        if (btn1.IsEnabled==false)
        {
            btn1.IsEnabled = true;
            btn1.Visibility = Visibility.Visible;
            btn2.Visibility = Visibility.Visible;
            textbox1.Visibility = Visibility.Visible;
        }
        else
        {
            btn1.IsEnabled = false;
            btn1.Visibility = Visibility.Collapsed;
            btn2.Visibility = Visibility.Collapsed;
            textbox1.Visibility = Visibility.Collapsed;
        }
    }

您可能会使用TouchUpTouchDown事件。但我认为你必须检查TouchDown是否与TouchUp在同一个StackPanel上。所以你可以检查它是否是"点击"。