我已经创建了一个启动页面,该页面在应用程序运行时加载,但它也显示了我的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>
答案 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后显示选项卡。