C# 在第一个tabitem wpf之前添加一个textblock
我想在第一个选项卡项之前的选项卡控件上显示我公司的名称 我试图直接在TabControl中添加一个TextBlock。但看起来好像在第一个TabItem之前添加了一个没有任何标题的新TabItem,在新创建的TabItem中,我得到了我公司的名称 代码如下:C# 在第一个tabitem wpf之前添加一个textblock,c#,wpf,xaml,C#,Wpf,Xaml,我想在第一个选项卡项之前的选项卡控件上显示我公司的名称 我试图直接在TabControl中添加一个TextBlock。但看起来好像在第一个TabItem之前添加了一个没有任何标题的新TabItem,在新创建的TabItem中,我得到了我公司的名称 代码如下: <TabControl> <TextBlock Text="MyCompanyName" /> <TabItem Header="FirstTabITem" /> <TabI
<TabControl>
<TextBlock Text="MyCompanyName" />
<TabItem Header="FirstTabITem" />
<TabItem Header="SecondTabITem" />
</TabControl>
这是WPF的限制吗?使用它可能会对您有所帮助
使用此选项可能会对您有所帮助
使用此选项可能会对您有所帮助
使用此选项可能会对您有所帮助
我相信您要做的是覆盖默认
选项卡控件.Template
中围绕
的XAML。我以前也做过一次,也不算太糟
如果您有Blend,您可以轻松创建要修改的TabControl.Template
的副本,或者您可以找到一个示例MSDN模板并从中进行操作
如果您使用MSDN示例模板,只需将
包装在其他文件中,例如DockPanel
,然后添加一个带有公司名称的
<Style TargetType="{x:Type TabControl}">
...
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabControl}">
<Grid KeyboardNavigation.TabNavigation="Local">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<DockPanel Grid.Row="0">
<TextBlock Text="Company Name" DockPanel.Dock="Left" />
<TabPanel Name="HeaderPanel" IsItemsHost="True" ... />
</DockPanel>
...
</Grid>
</ControlTemplate>
</Setter.Value>
</Style>
...
...
我相信您要做的是覆盖默认选项卡控件.Template
中围绕
的XAML。我以前也做过一次,也不算太糟
如果您有Blend,您可以轻松创建要修改的TabControl.Template
的副本,或者您可以找到一个示例MSDN模板并从中进行操作
如果您使用MSDN示例模板,只需将
包装在其他文件中,例如DockPanel
,然后添加一个带有公司名称的
<Style TargetType="{x:Type TabControl}">
...
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabControl}">
<Grid KeyboardNavigation.TabNavigation="Local">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<DockPanel Grid.Row="0">
<TextBlock Text="Company Name" DockPanel.Dock="Left" />
<TabPanel Name="HeaderPanel" IsItemsHost="True" ... />
</DockPanel>
...
</Grid>
</ControlTemplate>
</Setter.Value>
</Style>
...
...
我相信您要做的是覆盖默认选项卡控件.Template
中围绕
的XAML。我以前也做过一次,也不算太糟
如果您有Blend,您可以轻松创建要修改的TabControl.Template
的副本,或者您可以找到一个示例MSDN模板并从中进行操作
如果您使用MSDN示例模板,只需将
包装在其他文件中,例如DockPanel
,然后添加一个带有公司名称的
<Style TargetType="{x:Type TabControl}">
...
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabControl}">
<Grid KeyboardNavigation.TabNavigation="Local">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<DockPanel Grid.Row="0">
<TextBlock Text="Company Name" DockPanel.Dock="Left" />
<TabPanel Name="HeaderPanel" IsItemsHost="True" ... />
</DockPanel>
...
</Grid>
</ControlTemplate>
</Setter.Value>
</Style>
...
...
我相信您要做的是覆盖默认选项卡控件.Template
中围绕
的XAML。我以前也做过一次,也不算太糟
如果您有Blend,您可以轻松创建要修改的TabControl.Template
的副本,或者您可以找到一个示例MSDN模板并从中进行操作
如果您使用MSDN示例模板,只需将
包装在其他文件中,例如DockPanel
,然后添加一个带有公司名称的
<Style TargetType="{x:Type TabControl}">
...
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabControl}">
<Grid KeyboardNavigation.TabNavigation="Local">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<DockPanel Grid.Row="0">
<TextBlock Text="Company Name" DockPanel.Dock="Left" />
<TabPanel Name="HeaderPanel" IsItemsHost="True" ... />
</DockPanel>
...
</Grid>
</ControlTemplate>
</Setter.Value>
</Style>
...
...
编辑第一个选项卡项的样式,如下所示
<TabControl Margin="20">
<TabItem IsEnabled="False" >
<TabItem.Style>
<Style TargetType="TabItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<TextBlock Text="My Company" Margin="0,0,5,0"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</TabItem.Style>
</TabItem>
<TabItem Header="FirstTabITem" IsSelected="True"/>
<TabItem Header="SecondTabITem" />
</TabControl>
编辑第一个选项卡项的样式,如下所示
<TabControl Margin="20">
<TabItem IsEnabled="False" >
<TabItem.Style>
<Style TargetType="TabItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<TextBlock Text="My Company" Margin="0,0,5,0"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</TabItem.Style>
</TabItem>
<TabItem Header="FirstTabITem" IsSelected="True"/>
<TabItem Header="SecondTabITem" />
</TabControl>
编辑第一个选项卡项的样式,如下所示
<TabControl Margin="20">
<TabItem IsEnabled="False" >
<TabItem.Style>
<Style TargetType="TabItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<TextBlock Text="My Company" Margin="0,0,5,0"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</TabItem.Style>
</TabItem>
<TabItem Header="FirstTabITem" IsSelected="True"/>
<TabItem Header="SecondTabITem" />
</TabControl>
编辑第一个选项卡项的样式,如下所示
<TabControl Margin="20">
<TabItem IsEnabled="False" >
<TabItem.Style>
<Style TargetType="TabItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<TextBlock Text="My Company" Margin="0,0,5,0"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</TabItem.Style>
</TabItem>
<TabItem Header="FirstTabITem" IsSelected="True"/>
<TabItem Header="SecondTabITem" />
</TabControl>
为什么要这样做?这违反了所有的标准和准则。您可以在WPF中执行此操作,但这需要大量的工作,每个使用您的控件的人都会感到困惑。@nvoigt我的选项卡控件是我窗口的根。那么,指定公司名称的最佳地点是什么?我不知道,这是你必须决定的。你必须设计你的窗户。也许你需要一个不同的根,上面是你的公司名称和徽标,下面是选项卡控件?只有你自己可以决定,但是请注意,如果技术方面有问题,那么它可能不打算这样使用。你为什么要这样做?这违反了所有的标准和准则。您可以在WPF中执行此操作,但这需要大量的工作,每个使用您的控件的人都会感到困惑。@nvoigt我的选项卡控件是我窗口的根。那么,指定公司名称的最佳地点是什么?我不知道,这是你必须决定的。你必须去