Shi*_*mmy 23 wpf binding tabcontrol header tabitem
如何将TabItem.Header设置为从少数字段获取的绑定,每个绑定以不同的大小显示,全部代替原始标题文本; 没有覆盖标题的默认样式和行为 - 我只需要文本.
我试图设置它的模板但是它创建了一个包含内部控件的矩形,这个矩形对用户点击没有响应,并且还有控件样式,我希望这个控件不可见,只有它的文本应该是可见的.
我尝试过以下方法:
<TabControl ItemsSource="{Binding}">
<TabControl.ItemTemplate>
<DataTemplate>
<TabItem>
<TabItem.Header>
<MultiBinding StringFormat="{}{0}-{1}">
<Binding Path="Title"/>
<Binding Path="Category.Title"/>
</MultiBinding>
</TabItem.Header>
<TabItem.Content>
<TextBlock>
Here is what is gonna be in the TabItem - not header
</TextBlock>
</TabItem.Content>
</TabItem>
</DataTemplate>
</TabControl.ItemTemplate>
</TabControl>
Run Code Online (Sandbox Code Playgroud)
但它没有显示任何东西.
我也尝试将HeaderTemplate设置为DataTemplate,但是会发生的是,DataTemplate会覆盖TabItem样式,当我单击文本时它不会转到单击的选项卡,此外,未选中的选项卡看起来很有趣,我看到了文本的矩形浮动,而我希望它是透明的.
因此,总结一下我的问题,我想将TabItem.Header.Text设置为带有StringFormat的MultiBinding.
rmo*_*ore 64
TabControl包含一个ContentTemplate属性以及它从ItemsControl继承的ItemTemplate.它使用ContentTemplate来区分Content区域中显示的内容,而ItemTemplate则定义Header的模板.此外,ItemSource中的每个Item都将自动包装在TabItem中; 它不需要在ItemTemplate中重新创建,因为它会尝试将TabItem放在Header中,如您所注意到的那样.
而不是在ItemTemplate中重新创建TabItem,使用ItemTemplate定义Header内容,使用ContentTemplate定义内容.
<TabControl ItemsSource="{Binding}">
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0}--{1}">
<Binding Path="Title" />
<Binding Path="Category.Title" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate>
<TextBlock Text="{Binding MyContent}" />
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
Run Code Online (Sandbox Code Playgroud)
在您的第一段中,您提到要在标题的边界部分设置不同的大小.如果您确实想这样做,您将无法使用单个Binding或MultiBinding来设置文本,如上所述.相反,您可以嵌套TextBlocks来实现这一点,每种格式都有不同的格式.
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock>
<TextBlock Text="{Binding Title}"
FontSize="12" />
<Run Text="--" />
<TextBlock Text="{Binding Category.Title}"
FontSize="10" />
</TextBlock>
</DataTemplate>
</TabControl.ItemTemplate>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
24024 次 |
最近记录: |