为什么我的 TabItem 自定义控件没有显示在 TabControl 中
我制作了一个名为 SmartTabItem 的自定义控件,目前只是默认实现:
using System.Windows;
using System.Windows.Controls;
namespace TestControl.Controls
{
public class SmartTabItem : TabItem
{
static SmartTabItem()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(SmartTabItem), new FrameworkPropertyMetadata(typeof(SmartTabItem)));
}
}
}
我将其包含在我的 TabControl 中,如下所示:
<Window x:Class="TestControl.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:TestControl.Controls"
Title="Window1" Height="300" Width="300">
<DockPanel Margin="10">
<TabControl>
<controls:SmartTabItem Header="One">content of one</controls:SmartTabItem>
<TabItem Header="Two">content of two</TabItem>
<TabItem Header="Three">content of three</TabItem>
</TabControl>
</DockPanel>
</Window>
但仅显示选项卡“二”和“三”。 如果 SmartTabItem 继承自 TabItem,为什么它不显示在 TabControl 中?
I made a custom control called SmartTabItem, currently just the default implementation:
using System.Windows;
using System.Windows.Controls;
namespace TestControl.Controls
{
public class SmartTabItem : TabItem
{
static SmartTabItem()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(SmartTabItem), new FrameworkPropertyMetadata(typeof(SmartTabItem)));
}
}
}
I include it in my TabControl like this:
<Window x:Class="TestControl.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:TestControl.Controls"
Title="Window1" Height="300" Width="300">
<DockPanel Margin="10">
<TabControl>
<controls:SmartTabItem Header="One">content of one</controls:SmartTabItem>
<TabItem Header="Two">content of two</TabItem>
<TabItem Header="Three">content of three</TabItem>
</TabControl>
</DockPanel>
</Window>
But only tabs "Two" and "Three" are displayed. Why isn't the SmartTabItem showing up in the TabControl if it inherits from TabItem?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
要在
SmartTabItem
上使用TabItem
的默认样式,请修改如下代码:这将告诉 wpf 系统使用
TabItem
'选项卡项目的默认样式。 否则,你的选项卡项目就真的不好看了。To use the default style for a
TabItem
on yourSmartTabItem
, modify the code like this:This will tell the wpf system to use the
TabItem
's default style for your tab items. Otherwise, your tab item is truly lookless.我猜测是因为您已经覆盖了它的默认样式,但没有在 Generic.xaml 中为其提供样式。 尝试注释掉这一行来测试:
I'm guessing because you've overridden its default style, but have not provided a style for it in Generic.xaml. Try commenting out this line to test: