我可以使用TabItem.Background设置每个TabItem的背景,但是当选择该选项卡时,它是普通的香草白色.
如何设置聚焦的选项卡标题的样式?
<TabControl DockPanel.Dock="Top">
<TabControl.Background>
<LinearGradientBrush EndPoint="1.115,1.13" StartPoint="0,-0.02">
<GradientStop Color="#FFFFFFFF" Offset="1"/>
<GradientStop Color="#FFE0E376" Offset="0"/>
</LinearGradientBrush>
</TabControl.Background>
<TabItem Header="Allgem." Cursor="Hand">
<TabItem.Background>
<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFF3F3F3" Offset="0"/>
<GradientStop Color="#FFF11818" Offset="1"/>
</LinearGradientBrush>
</TabItem.Background>
<StackPanel DockPanel.Dock="Bottom" Width="400" HorizontalAlignment="Left" Margin="10">
...
Run Code Online (Sandbox Code Playgroud) 当a TabItem有焦点时,它显示内部虚线计数.如何使其透明或禁用它以获得焦点?
实际标签显示控件的命名空间,而不是活动tabitem的名称(标题).
..
<Label Content="{x:Type TabControl}" />
</Grid>
<TabControl>
<TabItem Header="Header1" />
<TabItem Header="Header2" />
..
Run Code Online (Sandbox Code Playgroud) 我想知道窗口中的哪个标签页是活动的.我的目标是这样的:
if Tabpage1 is active then
.....
end if
if Tabpage2 is active then
...
end if
Run Code Online (Sandbox Code Playgroud)
我将在表格结束时写下来.
我使用TabControl来托管工作区,使用John Smith撰写的这篇神奇文章中概述的方法.我想知道是否有一种方法可以在没有标签的情况下向标签控件添加内容,如图像.排序默认或空行为.我想要一个应用程序徽标,或者一些有用的箭头,这是Chrome首次使用的标签.
编辑:这可能有点复杂.我在下面的标准tabcontrol上尝试了Chad的解决方案.但是,我用于工作空间的tabcontrol是由使用datatemplate的内容控件呈现的,我无法使用它来解决它的问题.HB的解决方案适用于一些变化.
<DataTemplate x:Key="WorkspacesTemplate">
<Grid>
<Image Name="image1" Stretch="Uniform" Source="/Affinity;component/Images/affinity_logo.png" Margin="20"/>
<TabControl IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding}"
ItemTemplate="{StaticResource ClosableTabItemTemplate}" Margin="4">
<TabControl.Style>
<Style TargetType="TabControl">
<Style.Triggers>
<DataTrigger Binding="{Binding Items.Count, RelativeSource={RelativeSource Self}}"
Value="0">
<Setter Property="Visibility" Value="Hidden" />
</DataTrigger>
</Style.Triggers>
</Style>
</TabControl.Style>
<TabControl.Template>
<ControlTemplate TargetType="TabControl">
<Grid Background="White">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Hidden" >
<StackPanel x:Name="HeaderPanel"
Orientation="Horizontal"
Panel.ZIndex ="1"
KeyboardNavigation.TabIndex="1"
Grid.Column="0"
Grid.Row="0"
Margin="2,2,2,0"
IsItemsHost="true"/>
</ScrollViewer>
<ContentPresenter x:Name="PART_SelectedContentHost" Grid.Row="1"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
Margin="{TemplateBinding Padding}"
ContentSource="SelectedContent"/>
</Grid>
</ControlTemplate>
</TabControl.Template>
</TabControl>
</Grid>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud) 我用C#代码创建了一个TabControl.我将其ItemsSource绑定到一个集合并设置边距.出于某种原因,设置其DisplayMemberPath不会工作.
_tabControl = new TabControl();
_tabControl.Margin = new Thickness(5);
_tabControl.DisplayMemberPath = "Header";
_tabControl.SetBinding(ItemsControl.ItemsSourceProperty, itemsSourceBinding);
Run Code Online (Sandbox Code Playgroud)
集合中的每个项目都有一个名为"Header"的属性.
为什么这不起作用?
安德烈
编辑:这是所有相关的代码:
public partial class VariationGroupPreviewOptionsView
{
public string Header { get; set; }
public VariationGroupPreviewOptionsView()
{
InitializeComponent();
DataContext = new VariationGroupPreviewOptionsViewModel();
}
}
private void OptionsCommandExecute()
{
var dlg = new OptionsDialog();
dlg.ItemsSource = new List<ContentControl>() {new VariationGroupPreviewOptionsView(){Header = "Test"}};
dlg.ShowDialog();
}
public class OptionsDialog : Dialog
{
public static readonly DependencyProperty ItemsSourceProperty =
DependencyProperty.Register("ItemsSource", typeof (IEnumerable), typeof (OptionsDialog), new PropertyMetadata(default(IEnumerable)));
public IEnumerable …Run Code Online (Sandbox Code Playgroud) 我想将tabpages添加到tabcontrol1,并且需要动态创建tabpages
int a=10;
TabPage tabpage"+a+" = new TabPage();
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点:
tabpage10
tabpage12
tabpage13
Run Code Online (Sandbox Code Playgroud)
动态创建
我目前有一个使用的表单TabControl有5 TabPages.我想创建一个可以禁用特定按钮的按钮TabPage.
我试过了
TabPage1.Enabled = False
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我该怎么做呢?
我有问题.我遇到了很多错误,当我尝试从用户控件添加标签时,这让我很烦.这是代码
public Form1 f1 { get; private set; }
private void button1_Click(object sender, EventArgs e)
{
TabPage tp = new TabPage { };
tp.Text = "NewTab";
tp.Controls.Add(new b());
f1.tabControl1.TabPages.Add(tp); //>>> errors here
}
Run Code Online (Sandbox Code Playgroud)
我不想在TabControl界面中显示点,当我更改TabControl,TabPosition:Dots的属性时......我只想用手势来处理它.