Csharp/C#教程:WPF TabItem HeaderTemplate分享


WPF TabItem HeaderTemplate

示例代码:

         

如您所见,TabItem标题始终是具有不同内容的堆栈面板:

     

你怎么能把它放在一个模板中,这样我就没有重复的stackpanel代码?

试着这样做:

                       

结果是:

树标题唯一常见的是Margin =“5”。 在第二个和第三个选项卡中,stackpanel是无关紧要的,因为它只有一个子节点。 您可以使用HeaderTemplate或ItemContainerStyle来实现它:

                         

现在你不重复任何事情。

您还可以将stackpanel的属性提取为样式以避免重复它们:

                  

如果您想要更多的代码重用,您应该考虑类似MVVM的方法:

      

如果您不能对所有标头使用单个DataTemplate,则可以使用HeaderTemplateSelector

我认为只有在绑定Tab集合并动态生成它们时才会使用HeaderTemplate。 如果在ViewModel中设置对象,这将起作用(Header属性是具有隐式DataTemplates的项的集合,可以根据其类型生成TextBlocks或Rectangles)。

否则,您需要为StackPanel通用样式以使它们完全相同并保存重复,或者将TabItem.Header内容的第一个元素设置为派生自StackPanel的自定义控件。

我会自己选择Style路线,除非真的迫切需要从XAML中删除StackPanel线。

上述就是C#学习教程:WPF TabItem HeaderTemplate分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/999679.html

(0)
上一篇 2021年12月27日
下一篇 2021年12月27日

精彩推荐