WPF C#在应用程序启动时隐藏TabControl项

时间:2011-01-07 21:24:42

标签: c# wpf tabcontrol app-startup

我已经创建了一个启动页面,该页面在应用程序运行时加载,但它也显示了我的tabcontrol(两个用于编辑和绘图的标题)。

如何在启动时隐藏我的tabcontrol项目,仅在用户选择文件时显示它 - >新?

非常感谢!

的Xaml:

<TabControl Height="Auto" Name="tabControl1" Width="Auto">
            <TabItem Header="Diagram" Name="DiagramTab"></TabItem>
            <TabItem Header="Rulebase" Name="RuleTab" >
              <Grid>
               <TextBox Height="Auto" Name="RuleText" Width="Auto" Text="" AcceptsTab="True" AcceptsReturn="True" VerticalScrollBarVisibility="Auto" GotFocus="FocusChanged" KeyDown="ContentChanged" HorizontalScrollBarVisibility="Visible" />
              </Grid>
           </TabItem>
        </TabControl>

这是我的文件 - &gt;新菜单项:

 private void NewItem(object sender, RoutedEventArgs e)
    {
        ProcessNewCommand();
    }

private void ProcessNewCommand()
    {
        if (dataChanged)
        {
            string sf = SaveFirst();
            if (sf != "Cancel")
            {
                ClearState();                    
            }
        }
        else
        {
            ClearState();
        }
    }

风格:

<Style TargetType="TabItem" >
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="TabItem">
                    <Grid>
                        <Border 
                            Name="Border"
                            Background="LightBlue"
                            BorderBrush="Black" 
                            BorderThickness="0" 
                            CornerRadius="6,6,0,0" >
                 <ContentPresenter x:Name="ContentSite"
                            VerticalAlignment="Center"
                            HorizontalAlignment="Center"
                            ContentSource="Header"
                            Margin="12,2,12,2"/>
                        </Border>
                   </Grid>
         <ControlTemplate.Triggers>
                        <Trigger Property="IsSelected" Value="True">
                            <Setter TargetName="Border" Property="Background" Value="LightBlue" />
                        </Trigger>
                        <Trigger Property="IsSelected" Value="False">
                            <Setter TargetName="Border" Property="Background" Value="LightGray" />
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

2 个答案:

答案 0 :(得分:1)

在这些情况下,我通常会将ProjectViewModel(或ProjectModel)添加为包含DataContext的{​​{1}}。 Window可以将这些选项卡绑定到数据上下文中的项目。

TabControl

所以当public class ProjectViewModel : YourViewModelBase { public EditingViewModel Editor { ... } public DiagramingViewModel Diagram { ... } } 点火时你会说NewCommand。下面的风格将照顾其余部分。

this.DataContext = new ProjectViewModel()

答案 1 :(得分:0)

您可以将Tab的Visibility属性绑定到您的应用程序类或您拥有的任何内容,这样您只需在用户按下New后显示选项卡。