|
|
1
19
我在这里找到了一个解决方法: https://web.archive.org/web/20120429044747/http://eric.burke.name/dotnetmania/2009/04/26/22.09.28
它基本上存储选项卡的ContentPresenter,并在切换选项卡时加载它,而不是重新绘制它。由于这是一个删除/添加操作,所以在拖放选项卡时仍然会导致延迟,但是经过一些修改,我也消除了这种情况(以较低的调度程序优先级运行删除代码,然后运行添加代码,因此添加操作有机会取消删除操作,并使用旧的ContentPresenter而不是绘图)一个新的) 上面的链接似乎不再工作,所以我将粘贴一个代码的副本在这里。它被修改了一点以允许拖放,但是它仍然应该以相同的方式工作。
|
|
|
2
2
除此之外,我还遇到了一个类似的问题,并通过缓存一个表示代码中tab项内容的用户控件来解决了这个问题。 在我的项目中,我有一个绑定到集合(MVVM)的选项卡控件。但是,第一个选项卡是一个概述,显示列表视图中所有其他选项卡的摘要。我遇到的问题是,每当用户将所选内容从“项目”选项卡移动到“概述”选项卡时,都会使用所有摘要数据重新绘制概述,这可能需要10-15秒,具体时间取决于集合中的项目数。(请注意,它们不是从db或任何东西中重新加载实际数据,而是纯粹的摘要视图的绘制过程)。 我想要的是,这个摘要视图的加载只在第一次加载数据上下文时发生一次,随后在选项卡之间的任何切换都是瞬时的。 解决方案: 涉及的类别: 主窗口.xaml-包含选项卡控件的主页面。 主窗口.xaml.cs-上面的代码。 概述.xaml-用于绘制“概述”选项卡项内容的用户控件。 步骤:
现在只绘制一次overview页面,因为每次加载它(即用户单击overview选项卡)时,它都会将已经呈现的静态用户控件放回页面上。 |
|
|
3
-2
我有一个非常简单的解决方案,避免在标签更改时重新加载标签, 在tabItem中使用contentPresenter,而不是content属性。 e、 g.(MVVM样式) 代替
|
|
|
sab669 · 用于删除嵌套TabPage的代码并不总是有效的 10 年前 |
|
|
alex Alex · tabControl内的FlowLayoutPanel 12 年前 |
|
CodeMonkey · 如何更改Winform TabControl的位置 12 年前 |
|
|
user2025830 · WPF选项卡控制项添加MVVM 13 年前 |