Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何根据自己的选择更改TabControl的默认控件模板_C#_Wpf_Custom Controls_Controltemplate - Fatal编程技术网

C# 如何根据自己的选择更改TabControl的默认控件模板

C# 如何根据自己的选择更改TabControl的默认控件模板,c#,wpf,custom-controls,controltemplate,C#,Wpf,Custom Controls,Controltemplate,我正在尝试开发一个自定义TabControl,其中我将把整个TabControl分为三个部分: 1) 制表符标题 2) 公共区域(适用于所有选项卡)和 3) 特定选项卡的选项卡内容区域 更新: 请提供您最好的答案或样品,如果您有,任何类型的帮助将不胜感激 提前谢谢你嗯。。。我不太明白为什么会这样做,但如果我是你,我会使用WPF实现这一点 我会将选项卡标题实现为一个堆垛面板,里面填充了按钮(它们的样式显然需要重新设计,使其看起来像选项卡)。内容将是一个矩形,其中包含一个网格,其内容在单击按钮时发

我正在尝试开发一个自定义TabControl,其中我将把整个TabControl分为三个部分:

1) 制表符标题 2) 公共区域(适用于所有选项卡)和 3) 特定选项卡的选项卡内容区域 更新:

请提供您最好的答案或样品,如果您有,任何类型的帮助将不胜感激


提前谢谢你

嗯。。。我不太明白为什么会这样做,但如果我是你,我会使用WPF实现这一点

我会将选项卡标题实现为一个堆垛面板,里面填充了按钮(它们的样式显然需要重新设计,使其看起来像选项卡)。内容将是一个矩形,其中包含一个网格,其内容在单击按钮时发生更改。这就是基本的权杖。我不了解你们的共同区域。另一个好处是在每个选项卡中添加一个小“X”以关闭它。这也可以通过按钮来实现

使用Expression Blend创建这样的控件可能是有意义的

致以最良好的祝愿,
Christian

您可以将TabControl模板覆盖为您想要的任何内容,包括使其具有一个静态区域,无论选择哪个选项卡,该区域都保持可见

在模板中,我通常使用一个带有
IsItemsHost=True
的面板来定义选项卡控件的“选项卡”部分将显示在哪里,以及我希望所选选项卡内容显示在哪里


TabControl.ItemTemplate
也可以被覆盖以进一步定义选项卡,而
TabControl.ItemContainer
也可以被覆盖以仅修改TabControl的TabContent部分。

您正在尝试开发自定义选项卡控件,但您的问题让我感到困惑。你是要发布你需要帮助的代码,还是只想有人帮你开发代码?我需要想法、例子、知识或其他任何人可以帮助我的方式的帮助,就是这样…谢谢你对我的应用程序的浓厚兴趣,顺便说一句,我想在第一个区域(即页眉位置)使用选项卡,在第二个区域使用一些公共控件,这些控件可以从任何选项卡访问,其功能对于所有选项卡都是相同的。第三个区域用于特定选项卡的特定内容,这意味着如果用户单击Tab1,那么Tab1内容将显示在第三个区域,非常感谢,Rachel,这是我正在寻找的内容。但是如果我覆盖TabContent,如果我用两个部分修改了TabContent区域,那么当我加载内容时,是针对特定选项卡的,那么每次我都必须加载两个我不想要的分割区域。你知道如何在不反复加载整个TabContent区域的情况下使用它吗?我不知道你的意思。。。静态区域应该是选项卡控件的
控件模板的一部分,而不是所选选项卡的一部分。切换选项卡时唯一重新加载的部分是选项卡的ControlTemplate的
ContentPresenter
区域。你的静态内容可能不应该在这个区域。