开发者

tab control visibility hidden

开发者 https://www.devze.com 2023-02-12 18:36 出处:网络
I have 3 tab items to implement. When the program executes, I would like user to only be able to see tab1 and hide tab 2 and tab 3.

I have 3 tab items to implement. When the program executes, I would like user to only be able to see tab1 and hide tab 2 and tab 3.

something like this happens when the program execute:

public Window1()
{   
    InitializeComponent();

    // I need tabs 2 and 3 to be hidden   
}

Then I have a button in tab 1. When users click this, tab 2 shows up but still hide tab 3

private void Button1_Click(object sender, RoutedEventArgs e)
{
    tabcontrol1.SelectedIndex = 1;
    //need some code to show tab 2
}

And I have a button in tab 2 to show tab 3 and then all the tabs are visible

private void Button2_Click(object sender, RoutedEventArgs e)
{
    tabcontrol1.SelectedIndex = 2;
    // need some code to show tab 3    
}

My XAML code:

<TabControl Name="Tabcontrol1" Margin=" 5" SelectedIndex="0">
    <TabItem Header="Directories">
        <Grid Width="1185" Height="945" Background="White" >
            <Label Height="28" HorizontalAlignment="Right" 
                    Margin="0,0,25,0" Name="label11" VerticalAlignment="Top"  
                    Widt开发者_运维百科h="120">Step 1 of 2</Label>
        </Grid>
    </TabItem>
    <TabItem Header="Properties" Opacity="1" Name="Properties">
        <Grid Width="1185" Height="945" Background="White" >
            <Button Height="32" Name="Button1" VerticalAlignment="Bottom" 
                    HorizontalAlignment="Right" Width="82" Click="Button1_Click" 
                    Margin="0,0,41,49">Build</Button>
        </Grid>
    </TabItem>
    <TabItem Header ="Output">
        <Grid Width="1185" Height="945" Background="White">
            <Button Height="32" Name="Button2" VerticalAlignment="Bottom" 
                    HorizontalAlignment="Right" Width="82" Click="Button2_Click" 
                    Margin="0,0,41,49">Build</Button>
        </Grid>
     </TabItem>
</TabControl>

I am quite confused because i can only select a tab using:

tabcontrol1.SelectedIndex = 1;

I was thinking along the line of implementing

tabcontrol1.SelectedIndex.Visibility = Hidden;

please advice thanks.


Set Visibility of 2nd and 3rd tab to Collapsed initially. And also give them a name to be able to access them in code behind.

<TabItem Name="TabItem2" Header="Properties" Opacity="1" Name="Properties" Visibility="Collapsed">
...
<TabItem Name="TabItem3" Header ="Output" Visibility="Collapsed">
...

And change your button click code to the following:

private void Button1_Click(object sender, RoutedEventArgs e)
{
    tabcontrol1.SelectedIndex = 1;
    //need some code to show tab 2
    TabItem2.Visibility = Visibility.Visible;
}

private void Button2_Click(object sender, RoutedEventArgs e)
{
    tabcontrol1.SelectedIndex = 2;
    // need some code to show tab 3 
    TabItem3.Visibility = Visibility.Visible;   
}


I didn't understand properly what your problem is.Based on my Understanding you want to dynamically show tabitems inside a tabcontrol.Check if the below code works

<Grid x:Name="container">
        <TabControl Name="Tabcontrol1" Margin=" 5" SelectedIndex="0">
            <TabItem Name="Tab1" Header="Directories">
                <Button Height="32" Name="Button1" VerticalAlignment="Bottom" HorizontalAlignment="Right" Width="82" Click="Button1_Click" Margin="0,0,41,49">Build</Button>
            </TabItem>
            <TabItem Header="Properties" Opacity="1" Name="Properties" Visibility="Collapsed">
                    <Button Height="32" Name="Button2" VerticalAlignment="Bottom" HorizontalAlignment="Right" Width="82" Click="Button2_Click" Margin="0,0,41,49">Build</Button>
            </TabItem>
            <TabItem Header="Output" Name="Tab3" Visibility="Collapsed">
                    <Button Height="32" Name="Button3" VerticalAlignment="Bottom" HorizontalAlignment="Right" Width="82" Click="Button3_Click" Margin="0,0,41,49">Build</Button>
            </TabItem>
        </TabControl>


    </Grid>

and in codebehind

 private void Button1_Click(object sender, RoutedEventArgs e)
        {
            Properties.Visibility = Visibility.Visible;
            Tabcontrol1.SelectedItem = Properties;
        }

        private void Button2_Click(object sender, RoutedEventArgs e)
        {
            Tab3.Visibility = Visibility.Visible;
            Tabcontrol1.SelectedItem = Tab3;
        }
0

精彩评论

暂无评论...
验证码 换一张
取 消