在页面上显示多个项目之一(类似于标签的界面)

时间:2015-04-01 11:40:36

标签: xaml windows-8.1

我希望有类似标签的界面,我有多个按钮(标签),当用户按下其中一个按钮时,我会显示相应的容器并隐藏其他容器。

类似的东西:

 <!-- Buttons -->
 <StackPanel VerticalAlignment="Stretch" Grid.Column="0">
        <Button 
           Style="{StaticResource DetailSectionButton}" 
           Content="info" Click="Button_Click"/>
        <Button 
           Style="{StaticResource DetailSectionButton}" 
           Content="map" Click="Button_Click2"/>
        <Button 
           Style="{StaticResource DetailSectionButton}" 
           Content="attachment" Click="Button_Click3"/>
 </StackPanel>

 <!-- Info -->
 <ScrollViewer  x:Name="SecInfo" Grid.Column="1" Visibility="Collapsed" ...

 <!-- Map -->
 <Map:MapControl ZoomLevel="6" x:Name="SecMap" Grid.Column="1"  Visibility="Collapsed" ...

 <!-- Attachments -->
 <StackPanel x:Name="SecAttachments" Grid.Column="1" Visibility="Collapsed">

代码:

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        SecInfo.Visibility = Visibility.Visible;
        SecMap.Visibility = Visibility.Collapsed;
        SecAttachments.Visibility = Visibility.Collapsed;
    }

    private void Button_Click_1(object sender, RoutedEventArgs e)
    {
        SecInfo.Visibility = Visibility.Collapsed;
        SecMap.Visibility = Visibility.Collapsed;
        SecAttachments.Visibility = Visibility.Visible;
    }

    private void Button_Click_2(object sender, RoutedEventArgs e)
    {
        SecInfo.Visibility = Visibility.Collapsed;
        SecMap.Visibility = Visibility.Visible;
        SecAttachments.Visibility = Visibility.Collapsed;
    }

这是一个很好的方法,或者我需要在XAML中使用不同的东西吗?

1 个答案:

答案 0 :(得分:0)

您所呈现的内容应该按照您的预期运作。

可是:

我强烈建议您在应用程序中使用一些MVVM框架(如mvvmlight并且还有其他)和绑定。如果你花一些时间来理解你生活背后的概念,以后会变得更容易。

投入一些时间并了解平台细节,您从桌面开发中已经知道的内容可能不适用于此平台(例如:TabControl)。

对于您从头顶呈现的具体设计,我会考虑使用HubControl进行自定义,因为您提供了一些导航到页面的按钮,但只有当您需要快速访问它们并且需要更改页面时很多滚动。