选项卡控制宽度wpf
我有一个有n个选项卡的选项卡控件。 我试图限制TabControl的宽度,这样,如果只剩下一个选项卡,那么当我调整包含TabControl的主窗口的大小时,它的标题将始终可见。选项卡控制宽度wpf,wpf,width,tabcontrol,Wpf,Width,Tabcontrol,我有一个有n个选项卡的选项卡控件。 我试图限制TabControl的宽度,这样,如果只剩下一个选项卡,那么当我调整包含TabControl的主窗口的大小时,它的标题将始终可见。 有什么建议吗?如果只剩下一项,我通常会隐藏选项卡: <TabControl ItemsSource="{Binding Data}"> <TabControl.ItemContainerStyle> <Style TargetType="{x:Type TabItem
有什么建议吗?如果只剩下一项,我通常会隐藏选项卡:
<TabControl ItemsSource="{Binding Data}">
<TabControl.ItemContainerStyle>
<Style TargetType="{x:Type TabItem}">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=TabControl}, Path=Items.Count}"
Value="1">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TabControl.ItemContainerStyle>
</TabControl>
我不明白这个问题。调整窗口大小时,tabcontrol的tabitem标题是否消失?建议显示导致此行为的一些代码。
<TabControl.ItemContainerStyle>
<Style TargetType="{x:Type TabItem}">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=TabControl}, Path=Items.Count}"
Value="1">
<Setter Property="Width" Value="{Binding RelativeSource={RelativeSource AncestorType=TabControl}, Path=ActualWidth}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TabControl.ItemContainerStyle>
<Style TargetType="{x:Type TabItem}">
<Style.Resources>
<local:AddConverter x:Key="AddConverter"/>
</Style.Resources>
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=TabControl}, Path=Items.Count}"
Value="1">
<Setter Property="Width" Value="{Binding RelativeSource={RelativeSource AncestorType=TabControl},
Path=ActualWidth,
Converter={StaticResource AddConverter},
ConverterParameter=-5}"/>
</DataTrigger>
</Style.Triggers>
</Style>
public class AddConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
double input = (double)value;
double input2 = double.Parse(parameter as string);
return input + input2;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
double input = (double)value;
double input2 = double.Parse(parameter as string);
return input - input2;
}
}